内存
Rust 程序有 3 个存放数据的内存区域:
- 数据内存 - 对于固定大小和静态(即在整个程序生命周期中都存在)的数据。
考虑一下程序中的文本(例如 “Hello World”),该文本的字节只能读取,因此它们位于该区域中。
编译器对这类数据做了很多优化,由于位置已知且固定,因此通常认为编译器使用起来非常快。
- 栈内存 - 对于在函数中声明为变量的数据。
在函数调用期间,内存的位置不会改变,因为编译器可以优化代码,所以栈数据使用起来比较快。
- 堆内存 - 对于在程序运行时创建的数据。
此区域中的数据可以添加、移动、删除、调整大小等。由于它的动态特性,通常认为它使用起来比较慢,
但是它允许更多创造性的内存使用。当数据添加到该区域时,我们称其为分配。 从本区域中删除
数据后,我们将其称为释放。