首页 > 资料专栏 > 经营 > 运营治理 > 其他资料 > Go语言实践-Runtime(1)PDF

Go语言实践-Runtime(1)PDF

华润红双***
V 实名认证
内容提供者
热门搜索
资料大小:893KB(压缩后)
文档格式:PDF(54页)
资料语言:中文版/英文版/日文版
解压密码:m448
更新时间:2024/9/14(发布于河北)

类型:金牌资料
积分:--
推荐:升级会员

   点此下载 ==>> 点击下载文档


“Go语言实践-Runtime(1)PDF”第1页图片 图片预览结束,如需查阅完整内容,请下载文档!
文本描述
Go进阶训练营 第13课 Go语言实践 - Runtime答疑 大明 目录 ?内存管理套路 ?垃圾回收基础 ?如何阅读源码 内存管理套路——以Linux内核作为对比 ? Linux buddy 内存管理 ? Linux SLAB 内存管理 ?对比和总结 Linux内存管理 —— buddy Linux 的内存管理,主要依赖于 buddy + slab。其中 Buddy: ?内存按照页进行划分,一页大小 是 4K ?多个页组成块,采用的是 2 的幂。 比如说1,2,4,8,16...1024个页组 成一块 ?相同大小的块被链表连接在一起 Linux内存管理 ——分配内存 buddy 内存分配:当用户需要特定 大小的块的时候,先去找最接近大 小的链表里面找,找不到空闲块再 去找更大的。 假设请求4个页的块,那么先去4个 页的链表里面找,找不到再去 8 个 页的链表里面找,再找不到就去16 个页的链表里找...直至找到 4 和 8 都没有 假如说我们在16个页链表里面找到 了,那么16个页分成 8+8 两个部 分,一个部分放到8个页的链表里 面。剩下的再被分成 4 + 4,一块 被分配走,一块被放到4个页的链 表里面