逃逸分析

goalng中如何做到函数中的局部变量,可以在外部函数中正常使用?

golang的编译器会在编译时,对变量进行分析,如果在外部使用,会申请堆内存所以可以在外部函数使用,这个也叫逃逸分析。

在golang中即使使用new,申请的内存也不一定是在堆上面,逃逸分析机制会判断这个变量是否在函数之外使用过,如果未使用就在栈上面申请,避免过多申请堆,造成内存碎片。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 原文:https://zhuanlan.zhihu.com/p/113643434[https://zhuanla...
    gykimo阅读 796评论 0 0
  • 参考资源一参考资源二参考资源三 对于手动管理内存的语言,比如 C/C++,调用著名的malloc和new函数可以在...
    帘外五更风阅读 1,106评论 0 0
  • Go是一门带有垃圾回收的现代语言,它抛弃了传统C/C++的开发者需要手动管理内存的方式,实现了内存的主动申请和释放...
    机器铃砍菜刀s阅读 563评论 1 1
  • 引言 又到了金三银四的时候,作为一年一跳的胖虎,又准备开始跳槽了,这不他今天又请假来面试了。 “跳跳虎”对于今天的...
    后端时光阅读 458评论 0 1
  • 逃逸分析是golang编译器分析一个对象到底应该放到堆内存上,还是栈内存上逃逸是指在某个方法之内创建的对象,除了在...
    郭青耀阅读 1,460评论 2 5