内存管理及优化|青训营笔记

58 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第4天,在本节课我学习了有关内存管理及优化的知识,GO语言内存分配的目标是为对象在heap上分配内存。对象分配是根据对象的大小,选择最合适的块返回。 分配对象是非常高频的操作,每秒分配GB级别的内存。而且小对象的占比比较高,Go内存分配比较耗时。GAB对于Go内存管理来说是一个大对象,他的本质是将多个小对象的分配合并成一次大对象的分配。但是存在的问题是GAB的对象分配方式会导致内存被延迟释放。解决的方案是移动GAB中存活的对象。 然后我学习了有关编译器和静态分析方面的相关知识。编译器的结构是包括重要的系统软件,分析部分和综合部分,其中重要的系统软件包括识别符合语法和非法的程序,以及生成正确且高效的代码。分析部分包括词法分析、语法分析、语义分析和中间代码生成,综合部分包括,代码优化,机器无关优化以及生成优化后的IR。静态分析部分,主要包括静态分析、控制流程、数据流等。过程内分析的目的是仅在函数内部进行分析,过程间分析的目的是考虑函数调用时参数传递和返回值的数据流和控制流等。 在本节课我学到了很多有用的知识,明白了内存优化的相关重要知识,以上是对我之前学习的有关Go语言的相关知识的笔记总结,受益匪浅,学到了很多知识,未来我会进一步学习新的有关Go语言方面的知识,听好每一节课,做好大项目,争取取得优异成绩。