記憶體 (memory)
Rust 程式裡有三塊記憶體區塊用來儲存資料:
- 資料記憶體 (data memory):有著固定大小且是靜態 (即整個程式的生週期裡都可以存取) 的資料。
例如你程式裡的一段文字 (例如:"Hello World!"):這段文字的位元組 (bytes) 只會從一個固定的地方被讀取,因此它可以被儲存在這個區塊。
編譯器在這類型的資料上做了許多優化,因為它們的位址是已知且固定,所以通常可以很快速的取得。
- 堆疊記憶體 (stack memory):在函數裡宣告為變量的資料。
在一個函數呼叫裡,這類記憶體的位址永遠不會變動,因此編譯器可以對此做優化,使得堆疊資料可以快速被存取。
- 堆記憶體 (heap memory):當應用程式正在運行時所創建的資料。
在此區塊的資料可能會新增、移動、移除、更改大小…等等。因為它的動態特性,使得它們一般被認為在使用上是比較慢的。
但是也讓使用者可以有更多有創意的方式使用記憶體。
當資料被新增到此區塊,我們稱之為分配 (allocation)。當資料從此區塊被移除,我們稱之為回收 (deallocation)。