linux中,每个进程都有一个完整的虚拟内存地址,进程访问虚拟内存地址,内核通过页表(映射虚拟内存地址到物理内存地址)访问真正的物理内存地址。
所以,对于每个页的访问,都需要内核加载相关的映射,而这个动作是有一定消耗的。
当一个进程需要大量内存的时候,例如1G,那么就会有262144页,也会在页表中占用262144个页表项,而TBL无法缓存这么多页表项,于是会出现大量未命中的情况,就只能去加载页表,导致性能下降。
如果使用2M的大内存页,那么就只需要512页,也只需要512个页表项,可以大大增加TBL的命中率,提高进程性能。
(0)
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论