一种应用程序内存使用优化方法、装置、设备及介质制造方法及图纸

技术编号:35354312 阅读:15 留言:0更新日期:2022-10-26 12:28
本发明专利技术提出了一种应用程序内存使用优化方法,包括:将应用程序使用的虚拟内存分割为多个基准内存,对分割后的每个基准内存中随机选取其中一个页,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况;根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分;当轮询次数大于第一预设次数阈值时,将访问次数大于第二预设次数阈值的热内存迁移到大页,将访问次数小于第二预设次数阈值的冷内存进行内存回收,其中,第一预设次数阈值大于第二预设次数阈值,本发明专利技术还提出了一种应用程序内存使用优化装置、设备及介质,有效地降低了占用的CPU资源。低了占用的CPU资源。低了占用的CPU资源。

【技术实现步骤摘要】
一种应用程序内存使用优化方法、装置、设备及介质


[0001]本专利技术涉及内存优化领域,尤其是涉及一种应用程序内存使用优化方法、装置、设备及介质。

技术介绍

[0002]如今在Linux系统上运行的许多应用程序都需要使用大量的内存资源,这些内存在被分配之后可能有些内存会被频繁访问,而有些内存可能会长时间不被访问,访问频率比较高的内存被称为热内存,访问频率比较低的内存被称为冷内存。对于冷内存虽然内核的内存回收机制会在系统内存不足的时候对其进行回收,但这会导致内存不足时的内存分配存在延迟,严重影响运行中的业务程序,而对于频繁访问的热内存如果能使用大页则可以提升内存访问性能。
[0003]解决这个问题的核心是能够识别出应用程序对自身分配的所有内存的访问频率,从而让应用程序能够根据内存的冷热进行相应的优化。现有的技术中Linux内核已经提供了Idle page tracking机制(Linux内核的空闲页跟踪机制,可以识别到指定时间内未访问过的内存页),Idle page tracking机制可以在应用层判断一个应用程序的虚拟内存页在指定时间内有没有被访问过,基于Idle page tracking机制可以在用户态实现应用程序内存冷热的判断,通常的做法是通过轮询判断每个内存页是否在指定的时间内被访问过,因为每个判断都需要把虚拟地址也转换成物理地址页,然后再根据物理地址页通过内核提供的接口去查询物理页的空闲状态。
[0004]但是,这些操作相对比较耗时,如果应用程序使用的内存非常大时,每次轮询需要判断冷热的内存页会非常多,这将严重占用CPU资源。

技术实现思路

[0005]本专利技术为了解决现有技术中存在的问题,创新提出了一种应用程序内存使用优化方法、装置、设备及介质,有效解决由于现有技术造成内存页轮询时严重占用CPU资源的问题,有效地降低了占用的CPU资源。
[0006]本专利技术第一方面提供了一种应用程序内存使用优化方法,包括:
[0007]将应用程序使用的虚拟内存分割为多个基准内存,对分割后的每个基准内存中随机选取其中一个页,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况;
[0008]根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分;
[0009]当轮询次数大于第一预设次数阈值时,将访问次数大于第二预设次数阈值的热内存迁移到大页,将访问次数小于第二预设次数阈值的冷内存进行内存回收,其中,第一预设次数阈值大于第二预设次数阈值。
[0010]可选地,每个基准内存对应一个数据结构,所述数据结构用于描述对应基准内存
的访问热度,所述数据结构具体包括对应基准内存的访问次数、连续访问次数、连续未访问次数、冷热页标识。
[0011]进一步地,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况具体包括:
[0012]将虚拟内存中随机选取的页的虚拟地址映射为物理地址;判断当前预设轮询时间间隔内虚拟内存中随机选取的页的虚拟地址是否映射为物理地址;
[0013]如果随机选取的页的虚拟地址尚未映射物理地址,则设置基准内存对应数据结构中的访问次数为0,连续未访问次数加1;
[0014]如果随机选取的页的虚拟地址已经映射物理地址,则获取物理地址的idle标记,如果idle标记被清除,将基准内存对应的数据结构中访问次数加1、连续访问次数加1、连续未访问次数置0,再次设置该页的状态为idle;如果idle标记未被清除,将基准内存对应的数据结构中连续访问次数置0、连续未访问次数加1。
[0015]进一步地,还包括:
[0016]如果基准内存对应数据结构中的连续未访问次数大于第三预设次数阈值,并且访问次数大于第四预设次数阈值,将该基准内存的访问次数置0,其中,第四预设次数阈值大于第二预设次数阈值。
[0017]可选地,根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分具体包括:
[0018]每计算完成当前预设轮询时间间隔内一个基准内存的访问频率后,获取相邻基准内存对应的数据结构中的连续访问次数以及连续未访问次数;
[0019]如果当前基准内存以及相邻基准内存的连续访问次数均大于第五预设次数阈值,则将两个相邻基准内存合并为一个基准内存,并将合并后的基准内存标识为热内存;如果合并的热基准内存的连续未访问次数大于第八次数阈值,则将合并的热基准内存拆分为两个基准内存;并将拆分后的基准内存均标识为冷内存;
[0020]如果当前基准内存以及相邻基准内存的连续未访问次数均大于第六预设次数阈值,则将两个相邻的基准内存合并为一个基准内存,并并将合并后的基准内存标识为冷内存;如果合并后的冷基准内存的连续访问次数大于第七预设次数阈值,则将合并的冷基准内存拆分为两个基准内存,并将拆分后的基准内存均标识为热内存;其中,第五预设次数阈值大于第七预设次数阈值,第八预设次数阈值小于第六预设次数阈值。
[0021]进一步地,合并后的基准内存对应的数据结构使用首个基准内存的数据结构,并且数据结构中的访问次数、连续访问次数、连续未访问次数为两个基准内存中相应较小的值。
[0022]可选地,合并的基准内存拆分之后,每个基准内存对应的数据结构中的访问次数、连续访问次数、连续未访问次数均为合并的基准内存对应的数据结构中访问次数、连续访问次数、连续未访问次数的值。
[0023]本专利技术第二方面提供了一种应用程序内存使用优化装置,包括:
[0024]分割模块,将应用程序使用的虚拟内存分割为多个基准内存,对分割后的每个基准内存中随机选取其中一个页,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况;
[0025]合并及拆分模块,根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分;
[0026]迁移及回收模块,当轮询次数大于第一预设次数阈值时,将访问次数大于第二预设次数阈值的热内存迁移到大页,将访问次数小于第二预设次数阈值的冷内存进行内存回收,其中,第一预设次数阈值大于第二预设次数阈值。
[0027]本专利技术第三方面提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如本专利技术第一方面所述的一种应用程序内存使用优化方法的步骤。
[0028]本专利技术第四方面提供了一种计算机可读存储介质,其特征是,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如本专利技术第一方面所述的一种应用程序内存使用优化方法的步骤。
[0029]本专利技术采用的技术方案包括以下技术效果:
[0030]1、本专利技术将应用程序使用的虚拟内存分割为多个基准内存,使用采样技术在基准内存中随机选择一个页来判断其冷热代表整个基准内存的冷热,这样避免了对应用程序所有内存页的冷热判断,可以大大减少需要进行冷热判断的内存页个数,有效解决由于现有技术造成内存本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序内存使用优化方法,其特征是,包括:将应用程序使用的虚拟内存分割为多个基准内存,对分割后的每个基准内存中随机选取其中一个页,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况;根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分;当轮询次数大于第一预设次数阈值时,将访问次数大于第二预设次数阈值的热内存迁移到大页,将访问次数小于第二预设次数阈值的冷内存进行内存回收,其中,第一预设次数阈值大于第二预设次数阈值。2.根据权利要求1所述的一种应用程序内存使用优化方法,其特征是,每个基准内存对应一个数据结构,所述数据结构用于描述对应基准内存的访问热度,所述数据结构具体包括对应基准内存的访问次数、连续访问次数、连续未访问次数、冷热页标识。3.根据权利要求2所述的一种应用程序内存使用优化方法,其特征是,根据随机选取的页在当前预设轮询时间间隔内访问情况更新所述基准内存当前的访问情况具体包括:将虚拟内存中随机选取的页的虚拟地址映射为物理地址;判断当前预设轮询时间间隔内虚拟内存中随机选取的页的虚拟地址是否映射为物理地址;如果随机选取的页的虚拟地址尚未映射物理地址,则设置基准内存对应数据结构中的访问次数为0,连续未访问次数加1;如果随机选取的页的虚拟地址已经映射物理地址,则获取物理地址的idle标记,如果idle标记被清除,将基准内存对应的数据结构中访问次数加1、连续访问次数加1、连续未访问次数置0,再次设置该页的状态为idle;如果idle标记未被清除,将基准内存对应的数据结构中连续访问次数置0、连续未访问次数加1。4.根据权利要求3所述的一种应用程序内存使用优化方法,其特征是,还包括:如果基准内存对应数据结构中的连续未访问次数大于第三预设次数阈值,并且访问次数大于第四预设次数阈值,将该基准内存的访问次数置0,其中,第四预设次数阈值大于第二预设次数阈值。5.根据权利要求2所述的一种应用程序内存使用优化方法,其特征是,根据多个预设轮询时间间隔内基准内存的访问情况,将相邻基准内存进行合并或拆分具体包括:每计算完成当前预设轮询时间间隔内一个基准内存的访问频率后,获取相邻基准内存对应的数据结构中的连续访问次数以及连续未访问次数;如果当前基准内存以及相邻基准内存的...

【专利技术属性】
技术研发人员:崔士伟王传国张宇
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1