高性能Go语言的优化与落地实践|青训营笔记

58 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第3天,在本节课我首先学习了有关高性能GO语言发行版优化与落地实践方面的知识。优化分为内存管理优化和编译器优化,性能优化的目的是提升软件系统处理能力,减少不必要的消耗,充分发掘计算机算力。性能优化可以带来用户体验的提升,比如说刷抖音可以更丝滑,顺畅,同时资源的高效利用可以降低成本,提高效率,例如很小的优化乘以海量机器会是显著的性能提升和成本节约。 性能优化分为业务层优化和语言运行时优化以及数据驱动,其中业务层优化是针对特定场景,具体问题具体分析提出的,可以获得较大的性能收益。而语言运行时优化可以解决更通用的性能问题,可以考虑更多场景。数据驱动是自动化性能分析工具,可以依靠数据而非猜测,可以优化最大瓶颈。 Mutator表示业务线程,可以分配新对象,修改对象指向关系。Collector属于GC线程,找到存活对象,回收死亡对象的内存空间。Parallel GC:支持多个collectors同时回收的GC算法。GC算法的评价指标有安全性、吞吐率、暂停时间和内存开销。 对象被回收的条件:指针指向关系不可达的对象,标记跟对象:静态变量、全局变量、常量和线程栈等。 然后我学习了有关引用计数方面的知识,每个对象都有一个与之关联的引用数目,对象存活的条件:当且仅当引用数大于0,它具有内存管理的操作被平摊到程序执行过程中,内存管理不需要了解运行时间的实现细节等。 今天通过回看之前的上课内容,受益颇多。