Go内存分配 | 青训营笔记

77 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天

内存分配

目标(定义):为对象在heap上分配内存

Go的做法提前将内存分块

分块

缓存

mcahe管理一组mspan

内存管理优化

  • 字节的优化

小结

编译器和静态分析

静态分析

不执行程序代码,推导程序的行为

  1. 控制流

分析程序执行的流程,用控制流图表达出来。

  1. 数据流

在控制流上做数据流信息

  1. 过程内分析和过程间分析

过程内分析:仅在函数内部进行分析

过程间分析:考虑函数调用时参数传递和返回值的数据流和控制流

小结

编译器优化

字节内部的优化,主要在编译器后端优化

函数内联

  • 效果-benchmark

  • 优缺点

逃逸分析

总结