Rust釋出了最新的更新版本1.32.0,新增了方便偵錯用的dbg巨集,更換了預設的分配器,從原本預設使用jemalloc改為系統分配器。

Rust 1.32.0加入了dbg巨集(Macro),這個巨集是列印偵錯流開發者(Print Debugger)一大福音,過去用println!列印變數,要麻煩地設定參數,而使用dbg,只需要把參數丟進dbg!中,就能簡單地顯示變數中的值,而且還不需要擔心上下文。當開發者有好幾個println!需要處理,便很容易混淆,除非開發者想要多花費心力,自己增加上下文。

官方還提到,開發者使用println!並不是好習慣,因為println!列印標準輸出,反而eprintln!會是一個比較好的選擇,因為eprintln!列印標準錯誤,而使用dbg!也不需要擔心,該巨集以正確的方式處理標準錯誤。雖然dbg!只是一個小巨集,但是卻能幫助開發者的偵錯體驗。

過去Rust使用jemalloc而非系統分配器(Allocator),雖然普遍認為jemalloc的效能比較好,但隨著時間發展,情況已經改變了,不過,官方卻也越來越難把jemalloc拿掉,因為勢必造成部分使用jemalloc的程式發生錯誤。另外,jemalloc只是特定平臺的預設配置,在Windows上,早已使用系統分配器很長一段時間了。

官方提到,雖然jemalloc效能不錯,但也有其缺點,像是jemalloc會增加每個Rust二位元檔案約300Kb的大小。基於種種原因,加上從Rust 1.28開始提供全域分配器,因此官方也就在Rust 1.32把預設分配器切換成系統分配器,但開發者仍然可以從Crate使用到jemalloc。

此外,在過去兩個發布版本中,官方對模組系統進行了一些改進,而在Rust 1.32.0完成最後一步,統一路徑現在允許之前無效的輸入路徑語句,其解析的方法與非輸入路徑的方式相同。到這個版本,官方已經完成模組系統的簡化工作。

熱門新聞

Advertisement