内存管理架构与性能优化方法详解
1. 内存管理架构
1.1 TLB 与页大小
由于 TLB(Translation Lookaside Buffer,快表)用于映射的条目数量有限,使用更大的页面大小可以增加其缓存能够翻译的内存范围,从而减少 TLB 缺失,提高系统性能。TLB 还可进一步为不同页面大小划分单独的缓存,提高在缓存中保留更大映射的概率。
以典型的 Intel Core i7 处理器为例,它提供了以下四种 TLB:
| 类型 | 页面大小 | 条目数 |
| ---- | ---- | ---- |
| 指令 | 4K | 每个线程 64 个,每个核心 128 个 |
| 指令 | 大页面 | 每个线程 7 个 |
| 数据 | 4K | 64 个 |
| 数据 | 大页面 | 32 个 |
该处理器有一级数据 TLB,而 Intel Core 微架构支持两级,类似于 CPU 提供多级主内存缓存的方式。TLB 的具体组成因处理器类型而异,可参考供应商的处理器手册获取详细信息。
1.2 软件层面的内存管理
软件层面的内存管理包括虚拟内存系统、地址转换、交换、分页和分配等。与性能密切相关的主题有释放内存、空闲列表、页面扫描、交换、进程地址空间和内存分配器等。
释放内存 :当系统可用内存不足时,内核可采用多种方法释放内存并添加到页面空闲列表中。以 Linux 为例,这些方法按可用内存减少的一般使用顺序如下:
- 空闲列表 :由未使用的页面(也称为
超级会员免费看
订阅专栏 解锁全文
8万+

被折叠的 条评论
为什么被折叠?



