知识卡片

逃逸分析降GC压力

专业/工作 · 470.b.1.a.1.c.3.a.4.a.1.a

内容

编译器通过逃逸分析尽量把对象放在栈上,减少堆分配和 GC 成本。发散:写 Go 性能代码时,别只盯算法,也要看对象是否逃到堆上。呼应[[逃逸决定堆栈归属]]的判断标准。

参考来源

- 位置:《Go语言入门到实战(共3册)》第25章《Go语言编程入门与实战技巧:第15章 内存管理》(源文件:_epub-src/text/part0037_split_000.html) - 结论依据:原文围绕“逃逸分析是一种确定指针动态范围的方法”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。 - 原始内容:于是就有了一个“逃逸分析”的概念,在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法,可以分析在程序的哪些地方可以访问到指针。