【技术实现步骤摘要】
一种内存页处理方法及其相关设备
[0001]本申请涉及计算机
,尤其涉及一种内存页处理方法及其相关设备。
技术介绍
[0002]内存去重技术指,计算机的中央处理器(central processing unit,CPU)在确定多个虚拟内存页所指向的多个物理内存页的内容相同时,可将多个虚拟内存页指向同一个物理内存页,即对内容相同的多个物理内存页进行合并处理,从而释放冗余的物理内存页,达到内存去重目的。
[0003]在相关技术中,CPU可通过循环执行内存去重操作,有效增加可用内存。具体地,在对多个内存页(即前述的物理内存页)进行当前次去重时,CPU可对某一个内存页进行扫描,以获取该内存页的内容,并基于该内存页的内容生成一个数值,将该数值与红黑树中的各个数值(基于已扫描的其余内存页的内容生成)进行比较,若存在与该数值相同的其它数值,则确定存在与该内存页内容相同的内存页(即该内存页的重复页),并对这些内存页进行合并,若不存在,则将该数值存入红黑树。此后,还可对未扫描的其余内存也进行前述操作,直至完成所有内存页的当前次去重,再进行所有内存页的下一次去重。
[0004]在每一次去重中,CPU均会将每个内存页与其余内存页进行比较,以获取每个内存页的重复页。若某个内存页不存在重复页,使得CPU对该内存页的去重操作均为无效操作。这种情况在每一次去重中是相当常见的,过多无效的去重操作会导致CPU开销过大,且会降低去重速度。
技术实现思路
[0005]本申请实施例提供了一种内存页处理方法及其相关设备, ...
【技术保护点】
【技术特征摘要】
1.一种内存页处理方法,其特征在于,所述方法包括:对目标内存页进行第i次扫描;若确定第i次扫描时的目标内存页与第i
‑
1次扫描时的目标内存页内容不同,则将所述第i次扫描时的目标内存页对应的计数器的数值,增加第一数值;若确定所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容不同,则检测所述第i次扫描时的目标内存页对应的计数器的数值大小;若确定所述第i次扫描时的目标内存页对应的计数器的数值大于所述第一数值,则对所述第i次扫描时的目标内存页,以及与所述第i次扫描时的目标内存页内容相同的内存页,进行合并;其中,内容不同的内存页对应不同的计数器,内容相同的内存页对应相同的计数器。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若确定所述第i次扫描时的目标内存页对应的计数器的数值等于所述第一数值,则结束对所述第i次扫描时的目标内存页的处理。3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:若所述确定第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容相同,则结束对所述第i次扫描时的目标内存页的处理。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:基于第i次扫描时的目标内存页的校验和以及第i
‑
1次扫描时的目标内存页的校验和,检测所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页是否内容相同,以及所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页是否内容相同;其中,所述第i次扫描时的目标内存页的校验和基于所述第i次扫描时的目标内存页生成,所述第i
‑
1次扫描时的目标内存页的校验和基于所述第i
‑
1次扫描时的目标内存页生成。5.根据权利要求4所述的方法,其特征在于,所述基于第i次扫描时的目标内存页的校验和以及第i
‑
1次扫描时的目标内存页的校验和,检测所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页是否内容相同,以及所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页是否内容相同包括:若确定所述第i次扫描时的目标内存页的校验和以及第i
‑
1次扫描时的目标内存页的校验和不同,则将目标内存页的未修改轮次的数值设置为第二数值;若确定所述第i次扫描时的目标内存页的校验和以及第i
‑
1次扫描时的目标内存页的校验和相同,则将所述目标内存页的未修改轮次的数值,增加第三数值;基于所述目标内存页的未修改轮次的数值大小,检测所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页是否内容相同,以及所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页是否内容相同。6.根据权利要求5所述的方法,其特征在于,所述若确定第i次扫描时的目标内存页与第i
‑
1次扫描时的目标内存页内容不同包括:若确定所述目标内存页的未修改轮次的数值等于所述第二数值,则确定第i次扫描时的目标内存页与第i
‑
1次扫描时的目标内存页内容不同。
7.根据权利要求5或6所述的方法,其特征在于,所述若确定所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容不同包括:若确定所述目标内存页的未修改轮次的数值等于所述第三数值,则确定所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容不同。8.根据权利要求5至7任意一项所述的方法,其特征在于,所述若所述确定第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容相同包括:若确定所述目标内存页的未修改轮次的数值大于所述第三数值,则确定所述第i次扫描时的目标内存页与所述第i
‑
1次扫描时的目标内存页内容相同,且所述第i
‑
1次扫描时的目标内存页与第i
‑
2次扫描时的目标内存页内容相同。9.根据权利要求1至8任意一项所述的方法,其特征在于,所述对所述第i次扫描时的目标内存页,以及与所述第i次扫描时的目标内存页内容相同的内存页,进行合并包括:若确定所述第i次扫描时的目标内存页与待合并队列中的首个内存页对应同一进程,且所述第i次扫描时的目标内存页与所述待合并队列中的首个内存页位于预置的地址范围内,则将所述第i次扫描时的目标内存页加入所述待合并队列,直至构建新的待合并队列,并对所述待合并队列中的每个内存页,以及与该内存页内容相同的内存页进行合并;若确定所述第i次扫描时的目标内存页与待合并队列中的首个内存页对应不同的进程,或所述第i次扫描时的目标内存页与所述首个内存页未位于预置的地址范围内,则对所述待合并队列中的每个内存页,以及与该内存页内容相同的内存页进行合并,并以所述第i次扫描时的目标内存页为首个内存页,构建新的待合并队列。10.一种内存页处理装置,其特征在于,所述装置包括:扫描模块,用于对目标...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。