Yage Geng (@isbest)Rust所有权机制分析 中发帖

内存管理的经典方式
常见的内存管理方式

手动管理。


例如C语言,程序员需要显式地分配和释放内存。优点是高效且控制精细,高度灵活可自定义。但是程序员必须时刻记住内存何时需要回收,这会给程序员带来极大的心智负担。


自动管理


通过GC实现。例如Java,Go等语言。优点是减少悬空指针,双重释放错误,内存泄漏的风险。而代价是在运行期的性能开销,甚至是偶发的不可接受的暂停时间(Stop The World)


引用技术


例如Objective-C,Python等语言,每个对象都有一个引用计数,当引用计数变为零时,释放该对象的内存。优点是简单直接,缺点是处理循环引用困难。

Rust的内存管理方式
Ok,介绍了一些常见编程语言的内存管理方式,并且简要的分析了其优缺点。接下来我们看一下Rust是如何实现内存管理的。
fn main() {
let s1 = Strin...