面向终端设备的压缩内存管理方法
本发明涉及计算机存储管理,特别涉及一种面向终端设备的压缩内存管理方法以及一种计算机可读存储介质和一种计算机设备。
背景技术:
1、随着智能手机、平板电脑、可穿戴设备等终端设备的应用场景不断扩展,终端设备上运行的应用程序数量和复杂度持续增加。然而,终端设备受设备体积、功耗、散热和成本等因素限制,其可配置的物理内存容量和处理器资源相对受限。在多应用并发、前后台频繁切换以及大型应用启动等场景下,系统容易出现内存压力,对内存管理效率提出了更高要求。为了在有限的物理内存条件下维持系统可用性,现有移动操作系统通常采用压缩内存交换机制,在内存压力较高时将部分匿名页换出,并对其进行压缩后保存至压缩内存中。例如,在android系统中,zram压缩交换设备可将待换出页面压缩后存放于内存中的压缩区域,从而在一定程度上减少对物理内存的占用。
2、然而,压缩交换机制虽然能够缓解内存容量不足的问题,但其本身也会引入额外开销。一方面,页面在换出时需要经过压缩处理,在换入时又需要进行解压处理,该过程会消耗处理器资源并增加页面换入延迟;另一方面,压缩后的页面存放于内存中的压缩区域,仍然占用内存空间,当大量页面被写入压缩内存后,可能导致压缩内存空间紧张,并进一步影响系统内存回收效率和应用响应性能。
3、现有压缩内存管理机制通常侧重于选择压缩算法、调整压缩比例、优化换入换出路径或提升压缩执行效率,但在页面进入压缩内存之前,往往缺乏对页面后续生命周期行为的有效区分。实际运行中,不同页面在换出后的行为存在明显差异:部分页面可能在短时间内被应用重新访问并发生读回,部分页面在写入压缩内存后直至生命周期结束前均未被读回,还有部分页面本身难以压缩且后续读回概率较低。若对上述不同类型页面采用统一的压缩策略,则可能造成低收益甚至无收益的压缩操作,既浪费处理器资源,又占用有限的压缩内存空间。
4、此外,终端设备中的页面生命周期行为受到页面所属应用、应用运行阶段、页面回收来源、历史压缩长度、访问行为以及当前系统负载等多种因素影响,并且不同应用和不同运行场景下的页面读回概率和可压缩性也可能发生变化。现有方案通常难以根据应用性能表现和系统运行状态对页面处理策略进行动态调整,因而无法在压缩开销、压缩内存空间占用、页面换入延迟和应用响应性能之间取得较优平衡。
技术实现思路
1、本发明旨在至少在一定程度上解决上述技术中的技术问题之一。为此,本发明的一个目的在于提出一种面向终端设备的压缩内存管理方法,能够在页面换出至压缩内存之前,根据页面生命周期特征预测页面后续读回可能性,并结合页面可压缩性,针对不同类型页面选择差异化的压缩或写回策略,同时结合应用运行性能和系统开销反馈动态调整管理策略,以降低无效压缩开销,减少压缩内存空间浪费,并提升终端设备在内存压力场景下的整体运行效率。
2、本发明的第二个目的在于提出一种计算机可读存储介质。
3、本发明的第三个目的在于提出一种计算机设备。
4、为达到上述目的,本发明第一方面实施例提出了一种面向终端设备的压缩内存管理方法,该方法包括以下步骤:获取待换出页面对应的页面生命周期特征,并根据所述页面生命周期特征生成标准化状态项;根据所述标准化状态项查询预设或者已动态更新的q-table策略表,以得到对应的处理动作,其中,所述处理动作包括预设分类结果、压缩算法、压缩粒度、压缩执行路径或者写回路径;根据所述处理动作对所述待换出页面进行分类,以得到对应的生命周期分类结果,其中,所述生命周期分类结果包括可能被读回页面、不太可能被读回页面和不太可能被读回且难以压缩页面;根据所述生命周期分类结果和处理动作对所述待换出页面执行相应内存管理策略,并将路径标识、算法标识和换出映射信息记录至对应元数据中;获取应用运行性能反馈和系统开销反馈,并根据所述应用运行性能反馈和系统开销反馈对所述q-table策略表进行动态更新。
5、另外,根据本发明上述实施例提出的面向终端设备的压缩内存管理方法还可以具有如下附加的技术特征:
6、可选地,所述页面生命周期特征包括页面所属应用、页面回收来源、应用运行阶段、页面访问行为、历史压缩长度以及系统性能状态中的一种或多种。
7、可选地,所述页面回收来源包括后台内核回收、直接内存回收、内存控制组回收以及缓存应用优化回收中的一种或多种;所述系统性能状态包括内存压力状态、处理器负载状态、压缩耗时状态以及硬件压缩引擎负载状态中的一种或多种。
8、可选地,根据所述页面生命周期特征生成标准化状态项,包括:将所述页面生命周期特征中的页面所属应用标识编码到页面引用计数字段的高位;对所述状态项进行离散化或分桶化处理后,生成适于查询q-table策略表的标准化状态项。
9、可选地,根据所述处理动作对所述待换出页面进行分类,以得到对应的生命周期分类结果,包括:根据所述处理动作判断所述待换出页面后续被访问或被换入的概率是否高于预设读回阈值;如果是,则将所述待换出页面标记为可能被读回页面;如果否,则判断所述待换出页面的压缩收益是否低于预设压缩收益阈值;如果是,则将所述待换出页面标记为不太可能被读回且难以压缩页面;如果否,则将所述待换出页面标记为不太可能被读回页面。
10、可选地,根据所述生命周期分类结果和处理动作对所述待换出页面执行相应内存管理策略,包括:如果所述生命周期分类结果为可能被读回页面,则确定所述待换出页面对应的内存管理策略为采用cpu软件压缩路径执行低时延轻量级压缩,并将压缩后的页面数据优先保留于压缩内存中;如果所述生命周期分类结果为不太可能被读回且难以压缩页面,则确定所述待换出页面对应的内存管理策略为绕过普通压缩路径,以将所述待换出页面直接写回后端存储设备或低成本写回路径;如果所述生命周期分类结果为不太可能被读回页面,则确定所述待换出页面对应的内存管理策略为采用高压缩率压缩或者跨页粒度压缩方式进行压缩,并将多个待压缩页面按批量方式组织后异步提交至硬件压缩引擎,由所述硬件压缩引擎通过dma方式读取待压缩页面数据并写回压缩结果。
11、可选地,所述应用运行性能反馈包括应用监测模块采集的应用启动时间、应用重启时间、前后台切换时间、响应时间以及卡顿状态中的一种或多种;所述系统开销反馈包括处理器性能监测单元采集的处理器周期数、压缩耗时、解压耗时、缓存未命中次数、处理器负载以及硬件压缩引擎负载中的一种或多种。
12、可选地,根据所述应用运行性能反馈和系统开销反馈对所述q-table策略表进行动态更新,包括:根据所述应用运行性能反馈判断当前页面分类策略和压缩或写回处理策略是否影响应用运行性能,并生成性能驱动奖励;根据所述系统开销反馈生成系统开销状态,以表征当前处理器开销、压缩开销和硬件压缩引擎使用状态;根据所述性能驱动奖励和系统开销状态,判断当前生命周期分类结果和对应处理动作的效果,其中,当页面分类和处理策略降低处理器开销、减少压缩内存占用且未降低应用运行性能时,则对所述q-table策略中相应状态项和处理动作给予正向奖励;当页面分类和处理策略导致页面在换出后预设时间内被读回、增加换入延迟或降低应用运行性能时,对所述q-table策略中相应状态项和处理动作给予负向奖励,并根据所述正向奖励或负向奖励更新所述q-table策略表。
13、为达到上述目的,本发明第二方面实施例提出了一种计算机可读存储介质,其上存储有面向终端设备的压缩内存管理程序,该面向终端设备的压缩内存管理程序被处理器执行时实现如上述的面向终端设备的压缩内存管理方法。
14、为达到上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现如上述的面向终端设备的压缩内存管理方法。
15、根据上述面向终端设备的压缩内存管理方法,其有益效果在于:能够在页面换出至压缩内存之前,根据页面生命周期特征预测页面后续读回可能性,并结合页面可压缩性,针对不同类型页面选择差异化的压缩或写回策略,同时结合应用运行性能和系统开销反馈动态调整管理策略,以降低无效压缩开销,减少压缩内存空间浪费,并提升终端设备在内存压力场景下的整体运行效率。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com