34、内存管理指南

内存管理指南:从错误到最佳实践

内存管理指南

1. 页面错误

在初始化程序环境后,会遇到 172 次小页面错误,调用 getrusage(2) 时还会再遇到 14 次(这些数字会因架构和所使用的 C 库版本而异)。重要的是,当向内存填充数据时,页面错误数量会增加:442 - 186 = 256。缓冲区大小为 1 MiB,即 256 页。第二次调用 memset(3) 没有区别,因为所有页面现在都已映射。

页面错误分为小页面错误和大页面错误:
- 小页面错误 :内核只需找到一个物理内存页面并将其映射到进程地址空间。
- 大页面错误 :当虚拟内存映射到文件时会发生,例如使用 mmap(2) 。此时,内核不仅要找到一个内存页面并进行映射,还需要从文件中读取数据填充该页面,因此大页面错误在时间和系统资源上的开销更大。

2. 进程内存映射

可以通过 /proc 文件系统查看进程的内存映射。例如,以下是 PID 为 1 的 init 进程的内存映射:

00008000-0000e000 r-xp 00000000 00:0b 23281745   /sbin/init
00016000-00017000 rwxp 00006000 00:0b 23281745   /sbin/init
00017000-00038000 rwxp 00000000 00:00 0    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值