CN116680142B - 内存资源监测方法、电子设备、程序产品及介质 - Google Patents

内存资源监测方法、电子设备、程序产品及介质 Download PDF

Info

Publication number
CN116680142B
CN116680142B CN202211427333.3A CN202211427333A CN116680142B CN 116680142 B CN116680142 B CN 116680142B CN 202211427333 A CN202211427333 A CN 202211427333A CN 116680142 B CN116680142 B CN 116680142B
Authority
CN
China
Prior art keywords
pressure value
determining
reference pressure
target
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211427333.3A
Other languages
English (en)
Other versions
CN116680142A (zh
Inventor
杨盼飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202211427333.3A priority Critical patent/CN116680142B/zh
Publication of CN116680142A publication Critical patent/CN116680142A/zh
Application granted granted Critical
Publication of CN116680142B publication Critical patent/CN116680142B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请实施例提供的一种内存资源监测方法包括:获取文件页缓存值;将文件页缓存值与预设比例之积作为配额;统计工作集重复换入数据增量达到配额所用的时长;根据预设比例与时长的比值计算参考压力值;根据参考压力值确定内存资源状态。该方法能够根据参考压力值判断出内存中文件页缓存的状态。本申请还提供能够实现上述方法的电子设备、程序产品及计算机可读存储介质。

Description

内存资源监测方法、电子设备、程序产品及介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种内存资源监测方法、电子设备、程序产品及计算机可读存储介质。
背景技术
内存也称内存储器或主存储器,它用于暂时存放处理器的运算数据以及与外部存储器交换的数据。
目前有一种内存资源监测方法大致如下:获取剩余可用内存,当剩余可用内存少于第一阈值时,确定内存资源紧张,当剩余可用内存大于第二阈值时,确定内存资源充足。
上述方法对内存资源状态的监测不够全面。
发明内容
本申请提供了一种内存资源监测方法、电子设备、程序产品及计算机可读存储介质,目的在于改善监测内存资源的状态不全面的问题。
为了实现上述目的,本申请提供了以下技术方案:
本申请的第一方面提供的一种内存资源监测方法包括:获取文件页缓存值;将文件页缓存值与预设比例之积作为配额;统计工作集重复换入数据增量达到配额所用的时长;根据预设比例与时长的比值计算参考压力值;根据参考压力值确定内存资源状态。
其中,比值与参考压力值正相关,即表明工作集重复换入数据增量与参考压力值正相关,时长与参考压力值负相关,即表明工作集重复换入速度与参考压力值正相关。工作集重复换入数据增量即重复换入的文件页大小,由此可以推知,工作集重复换入速度越快则参考压力值越大,表明文件页缓存资源趋向紧张。工作集重复换入速度越慢则参考压力值越小,表明文件页缓存资源趋向空闲。这样根据参考压力值可以判断出内存中文件页缓存的空闲程度。
在一种可能的实现方式中,参考压力值等于预设比例与时长的比值。
在另一种可能的实现方式中,根据预设比例与时长的比值计算参考压力值包括:获取压力阻塞信息和输入输出等待时长;确定参考压力值为预设比例与时长的比值、压力阻塞信息与输入输出等待时长的加权和。压力阻塞信息和输入输出等待时长和内存资源的使用状态相关,这样计算得到的参考压力值能够更加准确地反映出内存资源的空闲程度。
在另一种可能的实现方式中,根据参考压力值确定内存资源状态包括:当参考压力值小于第一压力值阈值时,确定内存资源状态为充足状态;当参考压力值大于第二压力值阈值时,确定内存资源状态为紧张状态,第一压力值阈值小于第二压力值阈值。这样提供了一种参考压力值与内存资源状态的对应关系。
在另一种可能的实现方式中,本申请的内存资源监测方法还包括:在预设时长内工作集重复换入数据增量小于配额时,确定参考压力值为0。预设时长可以是但不限于1秒。在预设时长内工作集重复换入数据增量小于配额时,则表明统计时长超时,内存资源充足。
在另一种可能的实现方式中,本申请的内存资源监测方法还包括:根据对应用程序的触控操作生成读请求;获取读请求对应的接口类型;根据读请求获取当前文件页缓存值和当前剩余可用内存;在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值;根据应用程序信息和当前参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口,应用压力值区间与预读窗口负相关;根据读请求对应的接口类型缩小预读窗口;根据缩小后的预读窗口进行文件预读。当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值时,表明内存资源不充足。由于压力值区间与预读窗口负相关,因此应用压力值越大,应用程序的预读窗口越小。与现有逐渐扩大预读窗口的方法相比,在多个应用程序并行且内存资源不充足的情况下,本申请的方法能够为多个应用程序配置更小的预读窗口,这样能够减少内存擦除数据的情况,从而提高缓存命中率。
在另一种可能的实现方式中,根据应用程序信息和当前参考压力值确定目标压力值区间包括:
当应用程序的分组是前台业务分组时,根据前台业务分组与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的线程优先级大于预设优先级时,根据线程优先级与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的服务质量类别为关键业务类别时,根据关键业务类别与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的分组不是前台业务分组,应用程序的线程优先级小于或等于预设优先级且应用程序的服务质量类别不是关键业务类别时,确定应用程序的压力值等于当前参考压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间。
其中,应用程序信息包括应用程序的分组,应用程序的线程优先级或应用程序的服务质量类别。依此实施,可以为属于前台业务,高优先级业务或关键业务的应用程序配置更小的应用压力值区间,使它们的预读窗口比其它业务的预读窗口更大。
在另一种可能的实现方式中,根据读请求对应的接口类型缩小预读窗口包括:当读请求对应的接口类型为缺页类型时,按照第一级别调整粒度缩小应用程序的预读窗口;当读请求对应的接口类型不是缺页类型时,按照第二级别调整粒度缩小应用程序的预读窗口,第一级别调整粒度大于第二级别调整粒度。缺页类型对应的缓存命中率低于非缺页类型的缓存命中率,控制非缺页类型的预读窗口大于缺页类型的预读窗口,可以在内存资源不充足的情况下增加整个缓存的命中率。
在另一种可能的实现方式中,本申请的内存资源监测方法还包括:当文件页缓存值与剩余可用内存之和大于第二预设阈值时,根据读请求获取当前参考压力值;根据应用程序信息和当前参考压力值确定应用程序的目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定应用程序的目标应用压力值区间对应的预读窗口;根据读请求对应的接口类型扩大预读窗口;根据扩大后的预读窗口进行文件预读。控制缺页类型的预读窗口大于非缺页类型的预读窗口,可以在内存资源充足的情况下减少因缺页导致的未命中缓存情况。
在另一种可能的实现方式中,本申请的内存资源监测方法还包括:获取当前文件页缓存值和当前剩余可用内存;在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;根据内存回收类型与调整粒度的对应关系确定目标内存回收类型对应的调整粒度;确定第一目标交换数据量为交换数据量、目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第一目标交换数据量进行内存回收。
在另一种可能的实现方式中,本申请的内存资源监测方法还包括:在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;确定目标内存回收类型对应的调整粒度;确定第二目标交换数据量等于交换数据量减去目标调整粒度,目标调整粒度为目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第二目标交换数据量进行内存回收。第二预设阈值大于第一预设阈值。
在另一种可能的实现方式中,内存回收类型包括后台内存回收类型和直接内存回收类型,后台内存回收类型对应的调整粒度大于直接内存回收类型对应的调整粒度。
第二方面提供的一种电子设备包括监测单元和压力感知单元;监测单元用于获取文件页缓存值;压力感知单元用于将文件页缓存值与预设比例之积作为配额;统计工作集重复换入数据增量达到配额所用的时长;根据预设比例与时长的比值计算参考压力值,比值与参考压力值正相关;根据参考压力值确定内存资源状态。
在一种可能的实现方式中,压力感知单元具体用于获取压力阻塞信息和输入输出等待时长;确定参考压力值为预设比例与时长的比值、压力阻塞信息与输入输出等待时长的加权和。
在另一种可能的实现方式中,压力感知单元具体用于当参考压力值小于第一压力值阈值时,确定内存资源状态为充足状态;当参考压力值大于第二压力值阈值时,确定内存资源状态为紧张状态,第一压力值阈值小于第二压力值阈值。
在另一种可能的实现方式中,电子设备还包括触控单元和预读单元;
触控单元,用于根据对应用程序的触控操作生成读请求;获取读请求对应的接口类型;
监测单元还用于根据读请求获取当前文件页缓存值和当前剩余可用内存;
预读单元用于在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值;根据应用程序信息和当前参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口,应用压力值区间与预读窗口负相关;根据读请求对应的接口类型缩小预读窗口;根据缩小后的预读窗口进行文件预读。
在另一种可能的实现方式中,应用程序信息包括应用程序的分组,应用程序的线程优先级或应用程序的服务质量类别;预读单元具体用于当应用程序的分组是前台业务分组时,根据前台业务分组与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;当应用程序的线程优先级大于预设优先级时,根据线程优先级与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;当应用程序的服务质量类别为关键业务类别时,根据关键业务类别与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;当应用程序的分组不是前台业务分组,应用程序的线程优先级小于或等于预设优先级且应用程序的服务质量类别不是关键业务类别时,确定应用程序的压力值等于当前参考压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间。
在另一种可能的实现方式中,预读单元具体用于当读请求对应的接口类型为缺页类型时,按照第一级别调整粒度缩小应用程序的预读窗口;当读请求对应的接口类型不是缺页类型时,按照第二级别调整粒度缩小应用程序的预读窗口,第一级别调整粒度大于第二级别调整粒度。
在另一种可能的实现方式中,预读单元还用于在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,根据读请求获取当前参考压力值;根据应用程序信息和参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口;根据读请求对应的接口类型扩大预读窗口;根据扩大后的预读窗口进行文件预读。
在另一种可能的实现方式中,监测单元还用于获取当前文件页缓存值和当前剩余可用内存;电子设备还包括内存回收单元,内存回收单元用于在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;根据内存回收类型与调整粒度的对应关系确定目标内存回收类型对应的调整粒度;确定第一目标交换数据量为交换数据量、目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第一目标交换数据量进行内存回收。
在另一种可能的实现方式中,内存回收单元还用于在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;确定目标内存回收类型对应的调整粒度;确定第二目标交换数据量等于交换数据量减去目标调整粒度,目标调整粒度为目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第二目标交换数据量进行内存回收,第二预设阈值大于第一预设阈值。
在另一种可能的实现方式中,内存回收类型包括后台内存回收类型和直接内存回收类型,后台内存回收类型对应的调整粒度大于直接内存回收类型对应的调整粒度。
第三方面提供一种电子设备,其包括处理器和存储器,存储器用于存储程序;处理器通过执行程序用于实现第一方面的方法。
第四方面提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面的方法。
第五方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面的方法。
附图说明
图1为本申请提供系统优化界面的示意图;
图2为本申请提供的内存资源监测方法的一个流程图;
图3为本申请提供的根据参考压力值进行文件预读的一个流程图;
图4为本申请提供的设置应用压力值区间的一个流程图;
图5为本申请提供的根据参考压力值进行内存回收的一个流程图;
图6为本申请提供的电子设备的软件结构图;
图7为本申请提供的电子设备的硬件结构图;
图8为本申请提供的软件系统示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请实施例中,“一个或多个”是指一个、两个或两个以上;“和/或”,描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例涉及的多个,是指大于或等于两个。需要说明的是,在本申请实施例的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
本申请的方法可以应用于用户设备,用户设备也称为电子设备或终端。用户设备可以是手机,平板电脑,台式电脑,车载电脑,可穿戴设备,虚拟现实设备,增强现实设备,混合现实设备等。
在一个示例中,当用户在手机上启动应用程序时,应用程序根据启动指令读取程序的数据资源,出现卡顿或黑屏。
在另一个示例中,当用户点击应用程序的功能按钮时,应用程序根据点击指令读取程序文件,发生应用程序无响应(application not response,ANR)的提示。
在另一个示例中,当用户在应用程序的界面滑动时,应用程序根据滑动指令读取程序文件,出现丢帧。
上述故障通常与内存资源不足相关。本申请可以获取用于监测内存资源状态的参考压力值。根据参考压力值调整文件预读窗口或者调整交换数据量,以减少上述故障。参阅图1,系统优化界面的选项包括“文件预读优化”和“内存回收优化”。当滑动虚拟按键使得文件预读优化选项处于“ON”的状态时,应用程序启动后根据参考压力值调整文件预读窗口,从而优化文件预读过程。当滑动虚拟按键使得内存回收优化选项处于“ON”的状态时,根据参考压力值调整交换数据量,从而优化内存回收过程。
参阅图2,下面对获取参考压力值,根据参考压力值监测内存资源的方法进行介绍,在一个实施例中,本申请的内存资源监测方法包括:
步骤201、获取文件页缓存值。本申请中,页缓存包括文件页缓存和匿名页缓存。文件页缓存值是指文件页缓存的大小。
步骤202、将文件页缓存值与预设比例之积作为配额。预设比例可以是但不限于1%~100%中的任意一个值,例如5%。预设比例可以根据实际情况进行设置,本申请不作限定。
步骤203、统计工作集重复换入数据增量达到配额所用的时长。
具体的,获取第一时刻的工作集重复换入数据量和第二时刻的工作集重复换入数据量,确定工作集重复换入数据增量等于第二时刻的工作集重复换入数据量减去第一时刻的工作集重复换入数据量。第一时刻为启动统计的时刻,第二时刻为工作集重复换入数据增量达到配额的时刻。工作集重复换入数据量可以认为是在文件页缓存中换出之后再换入的数据量,工作集重复换入数据量可以是但不限于workingset_refault参数值。
步骤204、根据预设比例与时长的比值计算参考压力值,比值与参考压力值正相关。
可选的,参考压力值pgpress等于预设比例ratio与时长Δtime的比值。
具体的,参考压力值pgpress、预设比例ratio与时长Δtime满足以下公式:
应理解,在上述时长的条件下,工作集重复换入数据增量等于配额,此时工作集重复换入数据增量Δrefault、预设比例ratio和文件页缓存值file满足以下公式:
Δrefault=file*ratio。
步骤205、根据参考压力值确定内存资源状态。
可选的,步骤205包括:当参考压力值小于第一压力值阈值时,确定内存资源状态为充足状态;当参考压力值大于第二压力值阈值时,确定内存资源状态为紧张状态。第一压力值阈值小于第二压力值阈值,第一压力值阈值和第二压力值阈值可以根据实际情况进行设置。
需要说明的是,参考压力值可以按照数值划分为多个参考压力值区间,内存资源状态可以按照资源空闲程度划分为多个状态区间,然后建立参考压力值区间与状态区间的对应关系,从而更加精确地确定内存资源状态。参考压力值区间与状态区间的对应关系可以根据实际情况进行设置。
本实施例中,比值与参考压力值正相关,即表明工作集重复换入数据增量与参考压力值正相关,时长与参考压力值负相关。工作集重复换入数据增量即重复换入的文件页大小,由此可以推知,工作集重复换入速度越快则参考压力值越大,表明文件页缓存资源趋向紧张。工作集重复换入速度越慢则参考压力值越小,表明文件页缓存资源趋向空闲。这样根据参考压力值可以判定内存中文件页缓存的空闲程度。
内存资源的状态与压力阻塞信息以及输入输出等待时长(如IOwait参数值)有关。本申请还可以提供了根据压力阻塞信息和输入输出等待时长计算参考压力值的方法。在一个可选实施例中,步骤204包括:获取压力阻塞信息和输入输出等待时长;确定参考压力值为预设比例与时长的比值、压力阻塞信息与输入输出等待时长的加权和。比值的权重、压力阻塞信息的权重和输入输出等待时长的权重都可以根据实际情况进行设置。压力阻塞信息和输入输出等待时长和内存资源的状态相关,这样计算得到的参考压力值能够更加准确地反映出内存资源的空闲程度。
现有的文件预读中设置预读窗口的方法大致如下;判断读操作是否为顺序读,当读操作是顺序读时,增大读请求块的数量,发生缺页时预先读取后续页面。在顺序读取时,预读窗口随着预读次数的增加,预读窗口成倍扩大。例如,初始值为4个页,发生缺页时将预读窗口扩大为4页的整数倍,最大预读窗口为32个页。多个应用程序并行过程中各应用程序的预读窗口会扩大。当多个应用程序的预读窗口之和大于文件页缓存总量时,内存冲突会导致某些应用程序的部分文件页被擦除,出现缓存未命中的情况,此时应用程序要重新从磁盘读取数据,因此应用程序的处理速度会下降。
本申请可以根据参考压力值调整预读窗口,减少内存冲突。下面对本申请的文件预读方法进行详细介绍,参阅图3,在一个实施例中,本申请的内存监测方法还包括:
步骤301、根据对应用程序的触控操作生成读请求。触控操作可以是点击,滑动,长按等。
步骤302、获取读请求对应的接口类型。
步骤303、根据读请求获取当前文件页缓存值与当前剩余可用内存。
剩余可用内存是指除去应用程序占用的内存和操作系统占用的内存之外的其他内存。
步骤304、在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值。
在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,表明缓存文件的内存资源紧张。第一预设阈值可以根据实际情况进行设置,本申请不作限定。
步骤305、根据应用程序信息和当前参考压力值确定目标应用压力值区间。
步骤306、根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口,应用压力值区间与预读窗口负相关。
在一个示例中,应用压力值区间与预读窗口的对应关系如表1所示:
应用压力值区间编号 应用压力值区间 预读窗口级别 预读窗口
1 [0,0.05) 1 512千字节
2 [0.05,0.1) 2 256千字节
3 [0.1,0.15) 3 128千字节
4 [0.15,0.2) 4 64千字节
5 [0.2,0.25) 5 32千字节
6 [0.25,0.3) 6 16千字节
表1
应用压力值区间的大小可以是0.05或0.1。应理解,本申请的应用压力值区间编号、应用压力值区间的大小、预读窗口级别、预读窗口的大小、应用压力值区间与预读窗口的对应关系不限于表1所示的例子,具体可以根据实际情况进行设置。
步骤307、根据读请求对应的接口类型缩小预读窗口。
在一个可选实施例中,步骤307包括:当读请求对应的接口类型为缺页类型时,按照第一级别调整粒度缩小应用程序的预读窗口;当读请求对应的接口类型不是缺页类型(如读缓存类型)时,按照第二级别调整粒度缩小应用程序的预读窗口,第一级别调整粒度大于第二级别调整粒度。
缺页类型对应的缓存命中率低于非缺页类型对应的缓存命中率。与缺页类型的应用程序相比,本实施例在内存资源紧张的情况下为非缺页类型的应用程序分配更大的预读窗口,这样能够提高整个缓存的命中率。
可选的,第一级别调整粒度等于2,第二级别调整粒度等于1,其表明当读请求对应的接口类型是缺页类型时,将第3级别的预读窗口调整为第5级别的预读窗口,当读请求对应的接口类型不是缺页类型时,将第3级别的预读窗口调整为第4级别的预读窗口。应理解,第一级别调整粒度和第二级别调整粒度不限于以上举例。
步骤308、根据缩小后的预读窗口进行文件预读。
步骤309、在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,根据读请求获取当前参考压力值。
在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,表明内存资源充足。第二预设阈值大于第一预设阈值,具体可以根据实际情况进行设置,本申请不作限定。
步骤310、根据应用程序信息和当前参考压力值确定目标应用压力值区间。
步骤311、根据应用压力值区间与预读窗口的对应关系确定应用程序的目标应用压力值区间对应的预读窗口。
步骤312、根据读请求对应的接口类型扩大预读窗口。
在一个可选实施例中,步骤312包括:当读请求对应的接口类型为缺页类型时,按照第一级别调整粒度扩大应用程序的预读窗口;当读请求对应的接口类型不是缺页类型时,按照第二级别调整粒度扩大应用程序的预读窗口,第一级别调整粒度大于第二级别调整粒度。缺页类型对应的缓存命中率低于非缺页类型对应的缓存命中率。与非缺页类型相比,本实施例在内存资源充足的情况下为缺页类型分配更大的预读窗口,这样能够提高整个缓存的命中率。
步骤313、根据扩大后的预读窗口进行文件预读。
步骤304至步骤308是缩小预读窗口的过程,步骤309至步骤313是扩大预读窗口的过程,两个过程是独立的。
本实施例中,由于应用压力值区间与预读窗口负相关,因此应用压力值越大,应用程序的预读窗口越小。与现有逐渐扩大预读窗口的方法相比,在多个应用程序并行且内存资源紧张的情况下,本申请的方法能够为多个应用程序配置更小的预读窗口,这样能够减少内存擦除数据的情况,从而提高缓存命中率。
其次,在多个应用程序并行且内存资源充足的情况下,本申请的方法能够为多个应用程序配置更大的预读窗口,这样能够增加预读文件页,从而提高各应用程序的缓存命中率。
需要说明的是,本申请还可以设置预读窗口下限和预读窗口上限,当缩小后的预读窗口小于预读窗口下限时,按照预读窗口下限进行文件预读;当扩大后的预读窗口大于预读窗口上限时,按照预读窗口上限进行文件预读。这样能够防止文件预读出错。预读窗口下限和预读窗口上限可以根据实际情况进行设置。
以上介绍了一种根据接口类型缩小预读窗口或者扩大预读窗口的方法。在一个实施例中,本申请的内存资源监测方法包括:确定接口类型对应的区间调整粒度后,在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,根据该区间调整粒度将目标应用压力值区间降档,根据降档后的应用压力值区间确定预读窗口,由此缩小预读窗口。在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,根据该区间调整粒度将目标应用压力值区间升档,根据升档后的应用压力值区间确定预读窗口,由此扩大预读窗口。这样提供了另一种根据接口类型缩小预读窗口或者扩大预读窗口的方法。
在接口类型与区间调整粒度的对应关系中,缺页类型对应的区间调整粒度大于非缺页类型对应的区间调整粒度。
下面对确定目标压力值区间的方法进行介绍,参阅图4,在一个可选实施例中,步骤305包括:
步骤401、判断应用程序的分组是否为前台业务分组,若是,执行步骤402,若否,执行步骤405。
步骤402、根据前台业务分组与豁免压力值的对应关系确定应用程序的豁免压力值。
本申请的应用程序分组可以是但不限于块输入输出(block input output,BLKIO)分组。例如,应用程序分组包括前台业务分组和后台业务分组。前台业务分组可以对应一个豁免压力值,也可以对应多个豁免压力值。对于多个豁免压力值的情况,前台业务分组还可以划分为多个子分组,每个子分组对应的豁免压力值不同,具体可以根据实际情况进行设置。
步骤403、确定应用程序的压力值等于将当前参考压力值减去豁免压力值。
步骤404、确定目标压力值区间。本实施例中,目标压力值区间即应用程序的压力值所属的压力值区间。
步骤405、判断应用程序的线程优先级是否大于预设优先级,若是,执行步骤406,若否,执行步骤409。
步骤406、根据线程优先级与豁免压力值的对应关系确定应用程序的豁免压力值。
当应用程序的线程中至少一个线程的优先级大于预设优先级时,可以认为应用程序的线程优先级大于预设优先级,大于预设优先级的线程可以认为是VIP线程。按照不同的线程优先级可以配置相应的豁免压力值。线程优先级越高,豁免压力值越大,否则豁免压力值越小。
步骤407、确定应用程序的压力值等于将当前参考压力值减去豁免压力值。
步骤408、确定目标压力值区间。
步骤409、判断应用程序的服务质量类别是否为关键业务类别,若是,执行步骤410,若否,执行步骤413。
关键业务类别的应用程序可以是与前台业务的关联度大于预设关联度的业务,例如画面渲染业务等,关键业务类别的应用程序和预设关联度可以根据实际情况进行设置,本申请不作限定。
步骤410、根据关键业务类别与豁免压力值的对应关系确定应用程序的豁免压力值。
步骤411、确定应用程序的压力值等于将当前参考压力值减去豁免压力值。
步骤412、确定目标压力值区间。
步骤413、确定应用压力值等于当前参考压力值。
步骤414、确定目标压力值区间。
本实施例中,应用程序的豁免压力值大于0。前台业务分组的豁免压力值、高优先级应用程序的豁免压力值和关键应用程序的豁免压力值可以根据实际情况进行设置。与其它业务相比,本实施例可以为前台业务分组、高优先级应用程序或关键应用程序配置更小的应用压力值区间,使它们的预读窗口比其它业务的预读窗口更大。
在一个示例中,压力值区间是连续的且压力值区间的上限按照等差数列配置,豁免压力值等于n*等差数列的公差。n为正整数,n可以根据实际情况进行设置。例如,压力值区间为[0,0.1),[0.1,0.2),[0.2,0.3),[0.3,0.4),[0.4,0.5),豁免压力值为0.1。当文件缓存占比与参考压力值之积为0.35时,其他应用程序的应用压力值为0.35,前台业务分组的应用压力值为0.25,这样前台业务分组的应用压力值区间更小,前台业务分组的预读窗口更大。
在内存回收过程中,基于交换数据量(如swappiness)可以将页缓存中的不活跃文件(例如匿名页)存入磁盘的交换区域,以实现内存回收。下面对本申请根据参考压力值调整交换数据量的方法进行介绍,参阅图5,在另一个可选实施例中,本申请的内存资源监测方法还包括:
步骤501、获取当前文件页缓存值和当前剩余可用内存。
步骤502、在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量。
在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,表明内存资源不足。
步骤503、确定当前参考压力值所属的目标参考压力值区间。
步骤504、根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关。参考压力值区间可以反映出内存资源状态级别。
在一个示例中,参考压力值区间与调整粒度的对应关系如表2所示:
参考压力值区间 调整粒度
[0,0.1) 10
[0.1,0.2) 20
[0.2,0.3) 30
[0.3,0.4) 40
表2
数据交换量的区间为[0,200]。参考压力值区间的大小可以是0.05或0.1。应理解,参考压力值区间的大小,调整粒度的大小,参考压力值区间与调整粒度的对应关系的对应关系不限于表2所示,具体可以根据实际情况进行设置。
步骤505、根据内存回收类型与调整粒度的对应关系确定目标内存回收类型对应的调整粒度。
本申请中,内存回收类型包括后台内存回收类型和直接内存回收类型,后台内存回收类型可以是但不限于kswapd,直接内存回收类型可以是但不限于direct reclaim。后台内存回收类型对应的调整粒度大于直接内存回收类型对应的调整粒度。与按照直接内存类型回收内存资源相比,按照后台内存回收类型回收更多的内存资源,对前台应用程序的影响小,因此能够提高用户体验。
步骤506、确定第一目标交换数据量为交换数据量、目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和。
步骤507、根据第一目标交换数据量进行内存回收。
步骤508、在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量。
在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,表明内存资源充足。
步骤509、确定当前参考压力值所属的目标参考压力值区间。
步骤510、根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关。
步骤511、根据内存回收类型与调整粒度的对应关系确定目标内存回收类型对应的调整粒度。
步骤512、确定第二目标交换数据量等于交换数据量减去目标调整粒度,目标调整粒度为目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和。
步骤513、根据第二目标交换数据量进行内存回收。
步骤502至步骤507是增大交换数据量进行内存回收的过程,步骤508至步骤513是减少交换数据量进行内存回收的过程,两个过程是独立的。
本实施例中,在内存资源不足的情况下,将交换数据量增加至第一目标交换数据量,根据第一目标交换数据量进行内存回收,能够减少匿名页占用内存资源的情况,这样增加内存的文件页能够提高数据处理效率,减少系统卡顿。
其次,在内存资源充足的情况下,将交换数据量减少至第二目标交换数据量,根据第二目标交换数据量进行内存回收,能够减少内存资源空闲的情况。
需要说明的是,本申请还可以设置交换数据量下限和交换数据量上限,当调整后的交换数据量小于交换数据量下限时,按照交换数据量下限进行内存回收;当调整后的交换数据量大于交换数据量上限时,按照交换数据量上限进行内存回收。这样能够防止内存回收出错。交换数据量下限和交换数据量上限可以根据实际情况进行设置。
本申请还可以根据参考压力值调节冷冻阈值或查杀阈值,在内存资源不足的情况下降低冷冻阈值或查杀阈值,以冷冻更多进程或者查杀更多进程。在内存资源充足的情况下提高冷冻阈值或查杀阈值,以冷冻更少进程或者查杀更少进程。
本申请提供一种电子设备能够实现上述实施例中的内存资源监测方法。参阅图6,在一个实施例中,本申请的电子设备600包括监测单元601和压力感知单元602。
监测单元601用于获取文件页缓存值;
压力感知单元602用于将文件页缓存值与预设比例之积作为配额;统计工作集重复换入数据增量达到配额所用的时长;根据预设比例与时长的比值计算参考压力值,比值与参考压力值正相关;根据参考压力值确定内存资源状态。
在一个可选实施例中,压力感知单元602具体用于获取压力阻塞信息和输入输出等待时长;确定参考压力值为预设比例与时长的比值、压力阻塞信息与输入输出等待时长的加权和。
在另一个可选实施例中,压力感知单元602具体用于当参考压力值小于第一压力值阈值时,确定内存资源状态为充足状态;当参考压力值大于第二压力值阈值时,确定内存资源状态为紧张状态,第一压力值阈值小于第二压力值阈值。
在另一个可选实施例中,电子设备600还包括触控单元和预读单元;
触控单元用于根据对应用程序的触控操作生成读请求;获取读请求对应的接口类型;
监测单元601还用于根据读请求获取当前文件页缓存值和当前剩余可用内存;
预读单元用于在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值;根据应用程序信息和当前参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口,应用压力值区间与预读窗口负相关;根据读请求对应的接口类型缩小预读窗口;根据缩小后的预读窗口进行文件预读。
在另一个可选实施例中,应用程序信息包括应用程序的分组,应用程序的线程优先级或应用程序的服务质量类别;
预读单元具体用于执行以下步骤:
当应用程序的分组是前台业务分组时,根据前台业务分组与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的线程优先级大于预设优先级时,根据线程优先级与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的服务质量类别为关键业务类别时,根据关键业务类别与豁免压力值的对应关系确定应用程序的豁免压力值,确定应用程序的压力值等于将当前参考压力值减去豁免压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间;
当应用程序的分组不是前台业务分组,应用程序的线程优先级小于或等于预设优先级且应用程序的服务质量类别不是关键业务类别时,确定应用程序的压力值等于当前参考压力值;确定目标压力值区间为应用程序的压力值所属的压力值区间。
在另一个可选实施例中,预读单元具体用于当读请求对应的接口类型为缺页类型时,按照第一级别调整粒度缩小应用程序的预读窗口;当读请求对应的接口类型不是缺页类型时,按照第二级别调整粒度缩小应用程序的预读窗口,第一级别调整粒度大于第二级别调整粒度。
在另一个可选实施例中,预读单元还用于当文件页缓存值与剩余可用内存之和大于第二预设阈值时,根据读请求获取当前参考压力值;根据应用程序信息和当前参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定目标应用压力值区间对应的预读窗口;根据读请求对应的接口类型扩大预读窗口;根据扩大后的预读窗口进行文件预读。
在另一个可选实施例中,监测单元601还用于获取当前文件页缓存值和当前剩余可用内存;
电子设备600还包括内存回收单元,内存回收单元用于在当前文件页缓存值与当前剩余可用内存之和小于第一预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;根据内存回收类型与调整粒度的对应关系确定目标内存回收类型对应的调整粒度;确定第一目标交换数据量为交换数据量、目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第一目标交换数据量进行内存回收。
在另一个可选实施例中,内存回收单元还用于在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;确定当前参考压力值所属的目标参考压力值区间;根据参考压力值区间与调整粒度的对应关系确定目标参考压力值区间对应的调整粒度,参考压力值区间与调整粒度正相关;确定目标内存回收类型对应的调整粒度;确定第二目标交换数据量等于交换数据量减去目标调整粒度,目标调整粒度为目标参考压力值区间对应的调整粒度与目标内存回收类型对应的调整粒度之和;根据第二目标交换数据量进行内存回收,第二预设阈值大于第一预设阈值。
在另一个可选实施例中,内存回收类型包括后台内存回收类型和直接内存回收类型,后台内存回收类型对应的调整粒度大于直接内存回收类型对应的调整粒度。
如图7所示,在一个实施例中,本申请提供的一种电子设备700包括:总线702、处理器704、存储器706和通信接口708。处理器704、存储器706和通信接口708之间通过总线702通信。应理解,本申请不限定电子设备700中的处理器、存储器和通信接口的个数。
总线702可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线702可包括在电子设备700各个部件(例如,存储器706、处理器704、通信接口708)之间传送信息的通路。
处理器704可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、神经网络处理单元(neural-network processingunits,NPU)微处理器(micro processor,MP)或者数字信号处理器(digital signalprocessor,DSP)等处理器中的任意一种或多种。
存储器706可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。处理器704还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器706中存储有可执行的程序代码,处理器704执行该可执行的程序代码以分别实现前述监测单元601、压力感知单元602、预读单元和内存回收单元的功能,从而实现内存资源监测方法。存储器706上存有用于执行内存资源监测方法的指令。
通信接口708使用例如但不限于网络接口卡、收发器一类的收发模块,来实现电子设备700与其他设备或通信网络之间的通信。
参阅图8,本申请提供的一种电子设备的软件系统包括:应用程序层81、框架层82和内核层83。应用程序层81包括多个应用程序,例如通信程序811、相机程序812和购物程序813。应用程序层81还可以包括图库,日历,地图,导航,蓝牙,音乐,视频,短信等。
框架层82可以为应用程序提供接口和编程框架,还可以包括应用程序分组功能,线程管理功能和安全管理功能等。
内核层83包括监测单元831,压力感知单元832,预读单元833,内存回收单元834和文件页缓存835等。监测单元831可以实现监测单元601执行的步骤,例如获取系统状态信息,例如文件页缓存值,剩余可用内存,压力阻塞信息,输入输出等待时长等。压力感知单元832可以实现压力感知单元602执行的步骤,预读单元833可以实现电子设备600中预读单元执行的步骤。内存回收单元834可以实现电子设备600中内存回收单元执行的步骤。文件页缓存835可以按页存储从磁盘读取的文件数据。
本申请实施例还提供了一种包含指令的计算机程序产品。计算机程序产品可以是包含指令的,能够运行在电子设备上或被储存在任何可用介质中的软件或程序产品。当计算机程序产品在电子设备上运行时,使得电子设备执行内存资源监测方法。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质可以是电子设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,指令指示电子设备执行内存资源监测方法。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。

Claims (13)

1.一种内存资源监测方法,其特征在于,所述方法应用于用户设备,所述方法包括:
获取文件页缓存值;
将所述文件页缓存值与预设比例之积作为配额;
统计工作集重复换入数据增量达到所述配额所用的时长;
根据所述预设比例与所述时长的比值计算参考压力值,所述比值与所述参考压力值正相关;
根据所述参考压力值确定内存资源状态;
所述方法还包括:
根据对应用程序的触控操作生成读请求;
获取所述读请求对应的接口类型;
根据所述读请求获取当前文件页缓存值和当前剩余可用内存;
在所述当前文件页缓存值与所述当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值;
根据应用程序信息和所述当前参考压力值确定目标应用压力值区间;
根据应用压力值区间与预读窗口的对应关系确定所述目标应用压力值区间对应的预读窗口,所述应用压力值区间与预读窗口负相关;
根据所述读请求对应的接口类型缩小所述预读窗口;
根据缩小后的预读窗口进行文件预读。
2.根据权利要求1所述的方法,其特征在于,所述根据所述预设比例与所述时长的比值计算参考压力值包括:
获取压力阻塞信息和输入输出等待时长;
确定参考压力值为所述预设比例与所述时长的比值、压力阻塞信息与输入输出等待时长的加权和。
3.根据权利要求1所述的方法,其特征在于,所述根据所述参考压力值确定内存资源状态包括:
当所述参考压力值小于第一压力值阈值时,确定内存资源状态为充足状态;
当所述参考压力值大于第二压力值阈值时,确定内存资源状态为紧张状态,所述第一压力值阈值小于所述第二压力值阈值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述应用程序信息包括应用程序的分组,应用程序的线程优先级或应用程序的服务质量类别;
所述根据应用程序信息和所述当前参考压力值确定目标压力值区间包括:
当所述应用程序的分组是前台业务分组时,根据前台业务分组与豁免压力值的对应关系确定所述应用程序的豁免压力值,确定所述应用程序的压力值等于将所述当前参考压力值减去所述豁免压力值;确定目标压力值区间为所述应用程序的压力值所属的压力值区间;
当所述应用程序的线程优先级大于预设优先级时,根据线程优先级与豁免压力值的对应关系确定所述应用程序的豁免压力值,确定所述应用程序的压力值等于将所述当前参考压力值减去所述豁免压力值;确定目标压力值区间为所述应用程序的压力值所属的压力值区间;
当所述应用程序的服务质量类别为关键业务类别时,根据关键业务类别与豁免压力值的对应关系确定所述应用程序的豁免压力值,确定所述应用程序的压力值等于将所述当前参考压力值减去所述豁免压力值;确定目标压力值区间为所述应用程序的压力值所属的压力值区间;
当所述应用程序的分组不是前台业务分组,所述应用程序的线程优先级小于或等于预设优先级且所述应用程序的服务质量类别不是关键业务类别时,确定所述应用程序的压力值等于所述当前参考压力值;确定目标压力值区间为所述应用程序的压力值所属的压力值区间。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据读请求对应的接口类型缩小所述预读窗口包括:
当所述读请求对应的接口类型为缺页类型时,按照第一级别调整粒度缩小所述应用程序的预读窗口;当所述读请求对应的接口类型不是缺页类型时,按照第二级别调整粒度缩小所述应用程序的预读窗口,所述第一级别调整粒度大于所述第二级别调整粒度。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
在所述当前文件页缓存值与所述当前剩余可用内存之和大于第二预设阈值的情况下,根据读请求获取当前参考压力值;
根据应用程序信息和所述当前参考压力值确定目标应用压力值区间;
根据应用压力值区间与预读窗口的对应关系确定所述目标应用压力值区间对应的预读窗口;
根据所述读请求对应的接口类型扩大所述预读窗口;
根据扩大后的预读窗口进行文件预读。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
获取当前文件页缓存值和当前剩余可用内存;
在所述当前文件页缓存值与所述当前剩余可用内存之和小于第一预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量;
确定所述当前参考压力值所属的目标参考压力值区间;
根据参考压力值区间与调整粒度的对应关系确定所述目标参考压力值区间对应的调整粒度,所述参考压力值区间与所述调整粒度正相关;
根据内存回收类型与调整粒度的对应关系确定所述目标内存回收类型对应的调整粒度;
确定第一目标交换数据量为所述交换数据量、所述目标参考压力值区间对应的调整粒度与所述目标内存回收类型对应的调整粒度之和;
根据所述第一目标交换数据量进行内存回收。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
在当前文件页缓存值与当前剩余可用内存之和大于第二预设阈值的情况下,获取当前参考压力值、目标内存回收类型和交换数据量,所述第二预设阈值大于所述第一预设阈值;
确定当前参考压力值所属的目标参考压力值区间;
根据参考压力值区间与调整粒度的对应关系确定所述目标参考压力值区间对应的调整粒度,所述参考压力值区间与所述调整粒度正相关;
确定所述目标内存回收类型对应的调整粒度;
确定第二目标交换数据量等于所述交换数据量减去目标调整粒度,所述目标调整粒度为所述目标参考压力值区间对应的调整粒度与所述目标内存回收类型对应的调整粒度之和;
根据所述第二目标交换数据量进行内存回收。
9.根据权利要求7所述的方法,其特征在于,所述内存回收类型包括后台内存回收类型和直接内存回收类型,所述后台内存回收类型对应的调整粒度大于直接内存回收类型对应的调整粒度。
10.一种电子设备,其特征在于,包括:
监测单元,用于获取文件页缓存值;
压力感知单元,用于将所述文件页缓存值与预设比例之积作为配额;统计工作集重复换入数据增量达到所述配额所用的时长;根据所述预设比例与所述时长的比值计算参考压力值,所述比值与参考压力值正相关;根据所述参考压力值确定内存资源状态;根据对应用程序的触控操作生成读请求;获取所述读请求对应的接口类型;根据所述读请求获取当前文件页缓存值和当前剩余可用内存;在所述当前文件页缓存值与所述当前剩余可用内存之和小于第一预设阈值的情况下,根据读请求获取当前参考压力值;根据应用程序信息和所述当前参考压力值确定目标应用压力值区间;根据应用压力值区间与预读窗口的对应关系确定所述目标应用压力值区间对应的预读窗口,所述应用压力值区间与预读窗口负相关;根据所述读请求对应的接口类型缩小所述预读窗口;根据缩小后的预读窗口进行文件预读。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于执行所述指令,使得所述电子设备执行权利要求1至9中任一项所述的方法。
12.一种存储有指令的计算机可读存储介质,其特征在于,当所述指令在计算机上运行时,使得计算机执行权利要求1至9中任一项所述的方法。
13.一种包含指令的计算机程序产品,其特征在于,当所述指令在计算机上运行时,使得计算机执行权利要求1至9中任一项所述的方法。
CN202211427333.3A 2022-11-15 2022-11-15 内存资源监测方法、电子设备、程序产品及介质 Active CN116680142B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211427333.3A CN116680142B (zh) 2022-11-15 2022-11-15 内存资源监测方法、电子设备、程序产品及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211427333.3A CN116680142B (zh) 2022-11-15 2022-11-15 内存资源监测方法、电子设备、程序产品及介质

Publications (2)

Publication Number Publication Date
CN116680142A CN116680142A (zh) 2023-09-01
CN116680142B true CN116680142B (zh) 2024-05-07

Family

ID=87787853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211427333.3A Active CN116680142B (zh) 2022-11-15 2022-11-15 内存资源监测方法、电子设备、程序产品及介质

Country Status (1)

Country Link
CN (1) CN116680142B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870333A (zh) * 2012-12-17 2014-06-18 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
CN106155879A (zh) * 2015-03-26 2016-11-23 阿里巴巴集团控股有限公司 内存泄露的检测方法和装置
CN111880991A (zh) * 2020-07-23 2020-11-03 Oppo广东移动通信有限公司 内存优化方法、装置、电子设备及计算机可读存储介质
CN112445725A (zh) * 2019-08-27 2021-03-05 华为技术有限公司 预读取文件页的方法、装置和终端设备
CN112817836A (zh) * 2021-02-22 2021-05-18 深信服科技股份有限公司 一种服务器负载的确定方法、装置、设备以及存储介质
CN114168065A (zh) * 2020-09-10 2022-03-11 荣耀终端有限公司 调整内存配置参数的方法和装置
WO2022089452A1 (zh) * 2020-10-31 2022-05-05 华为终端有限公司 内存管理方法、装置、电子设备以及计算机可读存储介质
CN116204309A (zh) * 2023-02-10 2023-06-02 阿里云计算有限公司 内存交换方法、装置、计算机设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870333A (zh) * 2012-12-17 2014-06-18 华为技术有限公司 一种全局内存共享方法、装置和一种通信系统
CN106155879A (zh) * 2015-03-26 2016-11-23 阿里巴巴集团控股有限公司 内存泄露的检测方法和装置
CN112445725A (zh) * 2019-08-27 2021-03-05 华为技术有限公司 预读取文件页的方法、装置和终端设备
CN111880991A (zh) * 2020-07-23 2020-11-03 Oppo广东移动通信有限公司 内存优化方法、装置、电子设备及计算机可读存储介质
CN114168065A (zh) * 2020-09-10 2022-03-11 荣耀终端有限公司 调整内存配置参数的方法和装置
WO2022089452A1 (zh) * 2020-10-31 2022-05-05 华为终端有限公司 内存管理方法、装置、电子设备以及计算机可读存储介质
CN112817836A (zh) * 2021-02-22 2021-05-18 深信服科技股份有限公司 一种服务器负载的确定方法、装置、设备以及存储介质
CN116204309A (zh) * 2023-02-10 2023-06-02 阿里云计算有限公司 内存交换方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN116680142A (zh) 2023-09-01

Similar Documents

Publication Publication Date Title
CN111813513B (zh) 基于分布式的实时任务调度方法、装置、设备及介质
CN107239339B (zh) 系统性能优化参数确定方法、系统性能优化方法及装置
CN110532205B (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
CN102945215A (zh) 信息处理设备和方法
US7668175B2 (en) Dynamic power management for I/O resource pools
CN111159436A (zh) 一种推荐多媒体内容的方法、装置及计算设备
KR20060129873A (ko) 휴대단말기의 메모리 정리 방법
CN110704184A (zh) 一种应用内存优化方法、装置和移动终端
CN108874324B (zh) 一种访问请求处理方法、装置、设备及可读存储介质
WO2021164164A1 (zh) 一种存储服务质量控制方法、装置、设备及存储介质
US20130067168A1 (en) Caching for a file system
CN116680142B (zh) 内存资源监测方法、电子设备、程序产品及介质
CN117235393A (zh) 自适应的页面加载方法及装置、设备及存储介质
CN108681469B (zh) 基于Android系统的页面缓存方法、装置、设备及存储介质
CN114817090B (zh) 低ram消耗mcu通信管理方法及系统
CN114785739A (zh) 逻辑卷服务质量的控制方法、装置、设备及介质
CN111090627B (zh) 基于池化的日志存储方法、装置、计算机设备及存储介质
CN114116231A (zh) 一种数据加载方法、装置、计算机设备及存储介质
CN113010454A (zh) 数据读写方法、装置、终端及存储介质
CN115080657A (zh) 一种应用于分布式存储的操作令牌分配方法、系统及设备
CN111090633A (zh) 一种分布式文件系统的小文件聚合方法、装置及设备
CN111488256A (zh) 内存监控方法、装置、设备及存储介质
CN111831397B (zh) 处理io请求的方法、装置、设备及存储介质
CN117850659A (zh) 一种缓存空间调整方法、装置、电子设备及介质
CN114064357A (zh) 数据备份方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant