内存:值放堆上还是放栈上
rust处理数据时候内存的是用情况:
结论
对于存入栈上的值,它的大小在编译期就需要确定。 栈上存储的变量生命周期在当前调用栈的作用域内,无法跨调用栈引用。 堆可以存入大小未知或者动态伸缩的数据类型。堆上存储的变量,其生命周期从分配后开始,一直到释放时才结束,因此堆上的变量允许在多个调用栈之间引用。但也导致堆变量的管理非常复杂,手工管理会引发很多内存安全性问题,而自动管理,无论是 GC 还是 ARC,都有性能损耗和其它问题。 一句话对比总结就是:栈上存放的数据是静态的,固定大小,固定生命周期;堆上存放的数据是动态的,不固定大小,不固定生命周期。