51reboot

2020年带你飞

与世无争的帅哥 提交于 2020-01-06 23:01:55
2020 年了,你还在立 flag 吗? 我发现人们从来就不缺立 flag 的精神,只是缺乏坚持行动的毅力,2020年别光立 flag 了,行动起来,你的的这周下周下下周都被 51Reboot 承包了!所有分享免费参与(录屏回放没有,错过就是错过了)。 51Reboot 近期分享安排 2020.1.07——Go 内存详解 2020.1.09——Go-监控系统设计与源码解析 2020.1.16——大佬教你如何从 ES 初学者到 ES 专家 《Go 内存详解》 1、内存分区 1.1 代码区(text) 1.2 全局初始化数据区/静态数据区(data) 1.3 未初始化数据区(bss) 1.4 栈区(stack) 1.5 堆区(heap) 2、Go Runtime 内存分配 2.1基本策略 * 每次从操作系统申请一大块内存,以减少系统调用。 * 将申请的大块内存按照特定的大小预先的进行切分成小块,构成链表。 * 为对象分配内存时,只需从大小合适的链表提取一个小块即可。 * 回收对象内存时,将该小块内存重新归还到原链表,以便复用。 * 如果闲置内存过多,则尝试归还部分内存给操作系统,降低整体开销。 2.2内存管理单元 2.3内存管理组件 2.3.1 cache 2.3.2 central 2.3.3 heap 2.4 分配流程 2.5 释放流程 2.6 总结 3、Go GC 垃圾回收 3