今天看啥  ›  专栏  ›  GoCN

Golang GC 从原理到优化

GoCN  · 公众号  ·  · 2024-11-20 13:02
    

文章预览

这篇文章与笔者之前所写几篇不同,是一篇综述型的文章,将从 GC 理论、在 Golang 中的应用、以及如何去做优化,这三个角度逐次进行阐述,文章中对于一些技术点会引用到多篇文章,希望读者也都能进行阅读,这有助于更全面的了解 Golang GC。 理论 GC 和内存分配方式是强相关的两个技术,因此在分析两者的设计原理之时,要结合起来一起看。 GC 算法 标记-清除 标记-整理 标记-复制 分代收集 关于以上算法的简单介绍 内存分配方式 线性分配 线性分配(Bump Allocator)是一种高效的内存分配方法,但是有较大的局限性。当我们使用线性分配器时,只需要在内存中维护一个指向内存特定位置的指针,如果用户程序向分配器申请内存,分配器只需要检查剩余的空闲内存、返回分配的内存区域并修改指针在内存中的位置,即移动下图中的指针: 线性分配器 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览