首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

内存逃逸

程序占用的内存可以分为栈区、堆区、静态区、文字常量区和程序代码区。占用的栈区由编译器自动分配释放,程序员不用关心管理问题。堆区的内容一般由需要程序员手动管理,手动申请和释放。例如C/C++语言,调用malloc在堆上可以分配一块内存,释放需要调用free或delete操作。如果申请后没有释放就会导致严重内存泄露问题,这在实际开发的产品中是不允许的。所以对堆上内存的申请和释放要非常小心。但是在Go语言中,我们并不需要非常关心一个对象到底是申请在栈上还是堆上,因为Go的编译器会确定对象的真正分配位置,如果一个变量或对象需要分配在堆上时,会自动将其分配在堆上而不是栈上,使用new创建的对象也不一定是分配在堆上。堆和栈的界限变得比较模糊,Go采用逃逸分析技术确定一个对象是分配在堆上还是栈上。

02
领券