官术网_书友最值得收藏!

1.7 Rust的主要特點

我們相信,能夠創建出哪些東西來取決于我們使用什么工具。Rust讓你能構建出自己想要的軟件,同時又不必因為過于擔心而不敢去嘗試。那么,Rust是什么樣的工具呢?從1.6節的3條原則中可以看出,Rust語言有如下3個主要特點。

高性能。

支持并發。

內存使用效率高。

1.7.1 性能

Rust為你提供了計算機可用的全部性能。很有名的一點就是,Rust提供的內存安全性是不依靠垃圾回收器的。

不幸的是,向你承諾實現更快的程序時,存在一個問題:CPU的速度是固定的。因此,要讓軟件運行得更快,就要讓軟件做更少的事情。然而,Rust語言的規模很大,為了解決這個矛盾,Rust將重擔交給了編譯器。

Rust社區傾向于采用規模更大的語言,由編譯器去承擔更多的工作,而不是采用更簡單的語言,由編譯器去承擔更少的工作。Rust編譯器會積極地優化程序的大小和速度。Rust也有一些不太明顯的技巧,如下所示。

默認情況下,提供緩存友好的數據結構。在Rust程序中,通常用數組來保存數據,而不是由指針創建的深層嵌套的樹結構。這也叫作面向數據編程

有現代化的包管理器可用(cargo),這使得要從數以萬計的開源軟件包中獲益這件事變得很輕松。C和C++在這方面的平滑度要低得多,構建具有眾多依賴關系的大型項目往往非常困難。

除非顯式地請求動態分發,否則總是采用靜態分發的。這使得編譯器可以極大地優化代碼,有時甚至可以完全消除函數調用的開銷。

1.7.2 并發

對軟件工程師來說,要讓一臺計算機同時做多件事情,無疑是非常困難的。從操作系統角度來看,如果程序員犯了一個嚴重錯誤,兩個獨立運行的線程就可能隨意地相互破壞。然而,Rust催生了無畏并發的說法。它對安全性的強調跨越了獨立線程的界限,而且也沒有全局解釋器鎖(GIL)來限制線程的速度。在本書的第二部分中,我們將探討其中的一些含義。

1.7.3 內存使用效率

Rust讓你創建出的程序具有最小的內存使用量。在需要的時候,你可以使用固定大小的數據結構,并且能夠明確地知道你的程序是如何管理每個字節的。在使用諸如迭代和泛型類型等高級的語言構造時,Rust也會最小化它們的運行時開銷。

主站蜘蛛池模板: 水城县| 剑川县| 湄潭县| 漳州市| 阳城县| 同心县| 清新县| 牟定县| 鄂伦春自治旗| 泽州县| 神池县| 福清市| 神农架林区| 宽城| 垣曲县| 葫芦岛市| 桐柏县| 定陶县| 新兴县| 峨山| 临猗县| 买车| 页游| 剑阁县| 郁南县| 界首市| 襄垣县| 桃园县| 察哈| 万源市| 嘉荫县| 白沙| 光泽县| 启东市| 田阳县| 抚州市| 新晃| 沾益县| 德清县| 阳城县| 南溪县|