- Rust實戰
- (新西蘭)蒂姆·麥克納馬拉
- 833字
- 2022-12-01 19:12:22
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也會最小化它們的運行時開銷。
- Cocos2d Cross-Platform Game Development Cookbook(Second Edition)
- Java多線程編程實戰指南:設計模式篇(第2版)
- CMDB分步構建指南
- Rust Cookbook
- Windows Server 2012 Unified Remote Access Planning and Deployment
- C語言程序設計案例精粹
- 計算機應用基礎實踐教程
- Windows內核編程
- 學習OpenCV 4:基于Python的算法實戰
- Domain-Driven Design in PHP
- Cocos2d-x by Example:Beginner's Guide(Second Edition)
- Java 從入門到項目實踐(超值版)
- Software Development on the SAP HANA Platform
- Python第三方庫開發應用實戰
- Getting Started with JUCE