CN111666227A - 操作系统内存回收的页颠簸保护方法及装置 - Google Patents
操作系统内存回收的页颠簸保护方法及装置 Download PDFInfo
- Publication number
- CN111666227A CN111666227A CN202010551527.9A CN202010551527A CN111666227A CN 111666227 A CN111666227 A CN 111666227A CN 202010551527 A CN202010551527 A CN 202010551527A CN 111666227 A CN111666227 A CN 111666227A
- Authority
- CN
- China
- Prior art keywords
- thrashing
- page
- list
- bumpy
- data set
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Abstract
本申请实施例提供一种操作系统内存回收的页颠簸保护方法及装置,所述方法包括:UE对多个应用场景进行数据采集得到颠簸页数据集合;UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。本申请提供的技术方案具有用户体验度高的优点。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种操作系统内存回收的页颠簸保护方法及装置。
背景技术
android系统(linux内核)对于内存采用了“能用且用,忙时回收”的使用原则。内存的回收造成一些频繁使用的文件页被连续的扫描了两次,从而活动性快速降低为INACTIVE,最终被回收到buddy系统。后续应用又访问了文件的对应位置,使得分配物理页/读入文件内容的动作再次发生,一般将这个过程为页颠簸。
页颠簸的数量过多会导致系统的性能下降,影响用户的使用,降低用户体验度。
发明内容
本申请实施例公开了一种操作系统内存回收的页颠簸保方法,能够减少颠簸页的物理内存保护容量,提高系统的性能,提高用户体验度。
本申请实施例第一方面提供一种操作系统内存回收的页颠簸保护方法,所述方法应用于用户设备UE,所述方法包括如下步骤:
UE对多个应用场景进行数据采集得到颠簸页数据集合;
UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;
UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护
本申请实施例第二方面提供一种操作系统内存回收的页颠簸保护装置,所述装置应用于用户设备UE,所述装置包括:
采集单元,用于对多个应用场景进行数据采集得到颠簸页数据集合;
处理单元,用于对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
第三方面,提供一种终端,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行第一方面所述的方法中的步骤的指令。
本申请实施例第四方面公开了一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行第一方面所述的方法。
本申请实施例第五方面公开了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
通过实施本申请实施例,本申请提供的技术方案UE对多个应用场景进行数据采集得到颠簸页数据集合;UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。由于本申请的保护基本单元为block,相对于页为基本单元的保护,block保护的粒度更小,这样对于多个颠簸页可以具有相同的block,并且由于block的容量比页的容量小,因此物理内存锁定的内存容量更小,避免了多余的物理内存被锁定,提高了系统性能,提高了用户体验度。
附图说明
以下对本申请实施例用到的附图进行介绍。
图1是本申请实施例提供的一种终端的结构示意图;
图2是本申请实施例提供的一种操作系统内存回收的页颠簸保护方法的流程示意图;
图3是本申请实施例提供的一种操作系统内存回收的页颠簸保护装置的结构示意图;
图4是本申请实施例提供的终端的结构示意图;
图5是本申请实施例提供的一种设备的结构示意图。
具体实施方式
下面结合本申请实施例中的附图对本申请实施例进行描述。
本申请中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/“,表示前后关联对象是一种“或”的关系。
本申请实施例中出现的“多个”是指两个或两个以上。本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。本申请实施例中出现的“连接”是指直接连接或者间接连接等各种连接方式,以实现设备间的通信,本申请实施例对此不做任何限定。
本申请实施例中的终端可以指各种形式的UE、接入终端、用户单元、用户站、移动站、MS(英文:mobile station,中文:移动台)、远方站、远程终端、移动设备、用户终端、终端设备(英文:terminal equipment)、无线通信设备、用户代理或用户装置。终端设备还可以是蜂窝电话、无绳电话、SIP(英文:session initiation protocol,中文:会话启动协议)电话、WLL(英文:wireless local loop,中文:无线本地环路)站、PDA(英文:personaldigital assistant,中文:个人数字处理)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备,未来5G网络中的终端设备或者未来演进的PLMN(英文:public land mobile network,中文:公用陆地移动通信网络)中的终端设备等,本申请实施例对此并不限定。
操作系统(例如安卓系统、处于增强模式的UNIX、Windows)使用虚拟内存。事实上的内存是一种技术,通过使用磁盘空间来模拟RAM(随机存取内存),使机器的行为就像拥有比实际更多的内存一样。在终端中,都存在一种称为内存管理单元(MMU)的硬件。
MMU把内存当作是由一系列“页”组成的一定大小的连续字节,通常为4096或8192字节。操作系统为每个运行的程序设置并维护一个称为进程内存映射(PMM)的表。PMM包含程序可以访问的所有内存页,以及每个内存页的实际位置。
每次程序访问内存的任何部分时,MMU都会处理该地址(称为“虚拟地址”)。MMU在PMM中查找内存的实际位置(称为“物理地址”),物理地址可以是操作系统为其分配的内存或磁盘中的任何位置,如果程序要访问的位置在磁盘上,则必须将包含它的页面从磁盘读取到内存中,并且必须更新PMM以反映此操作(这称为“页面错误”)。
因为访问磁盘要比访问RAM慢得多,所以操作系统试图将尽可能多的虚拟内存保存在RAM中。如果正在运行一个足够大的程序(或同时运行几个小程序),则可能没有足够的RAM来保存程序使用的所有内存,因此必须将其中一些内存移出RAM并移到磁盘上(此操作称为“分页”)。
操作系统猜测哪些内存区域在一段时间内不太可能被使用(通常基于过去内存的使用方式),如果它猜错了,或者如果当前程序在很多地方访问了大量内存,为了读入被调出的页面,会出现很多页面错误。因为所有的RAM都在使用,所以要访问读入的每一页,必须调出另一页,这可能会导致更多的页面错误,因为现在已将另一页内存移到磁盘,在短时间内出现许多页面错误的问题,称为“页面抖动”,会大大降低系统的性能。
请参阅图1,图1是本申请实施例公开的一种终端的结构示意图,终端100包括存储和处理电路110,以及与所述存储和处理电路110连接的传感器170,传感器170可以包括摄像头、距离传感器、重力传感器等,本申请电子设备可以包括两块透明显示屏,该透明显示屏设置在电子设备的背面和正面,两块透明显示屏之间的部件中的部分或全部部件也可以为透明的,因此该电子设备从视觉效果上可以是一种透明电子设备,如果为部分部件为透明的,则该电子设备可以为镂空电子设备。其中:
终端100可以包括控制电路,该控制电路可以包括存储和处理电路110。该存储和处理电路110可以存储器,例如硬盘驱动存储器,非易失性存储器(例如闪存或用于形成固态驱动器的其它电子可编程只读存储器等),易失性存储器(例如静态或动态随机存取存储器等)等,本申请实施例不作限制。存储和处理电路110中的处理电路可以用于控制终端100的运转。该处理电路可以基于一个或多个微处理器,微控制器,数字信号处理器,基带处理器,功率管理单元,音频编解码器芯片,专用集成电路,显示驱动器集成电路等来实现。
存储和处理电路110可用于运行终端100中的软件,例如互联网浏览应用程序,互联网协议语音(Voice over Internet Protocol,VOIP)电话呼叫应用程序,电子邮件应用程序,媒体播放应用程序,操作系统功能等。这些软件可以用于执行一些控制操作,例如,基于照相机的图像采集,基于环境光传感器的环境光测量,基于接近传感器的接近传感器测量,基于诸如发光二极管的状态指示灯等状态指示器实现的信息显示功能,基于触摸传感器的触摸事件检测,与在多个(例如分层的)显示屏上显示信息相关联的功能,与执行无线通信功能相关联的操作,与收集和产生音频信号相关联的操作,与收集和处理按钮按压事件数据相关联的控制操作,以及终端100中的其它功能等,本申请实施例不作限制。
终端100可以包括输入-输出电路150。输入-输出电路150可用于使终端100实现数据的输入和输出,即允许终端100从外部设备接收数据和也允许终端100将数据从终端100输出至外部设备。输入-输出电路150可以进一步包括传感器170。传感器170静脉识别模组,还可以包括环境光传感器,基于光和电容的接近传感器,指纹识别模组,、触摸传感器(例如,基于光触摸传感器和/或电容式触摸传感器,其中,触摸传感器可以是触控显示屏的一部分,也可以作为一个触摸传感器结构独立使用),加速度传感器,摄像头,和其它传感器等,摄像头可以为前置摄像头或者后置摄像头,指纹识别模组可集成于显示屏下方,用于采集指纹图像,指纹识别模组可以为:光学指纹模组等等,在此不作限定。上述前置摄像头可以设置前面显示屏的下方,上述后置摄像头可以设置在后面显示屏的下方。当然上述前置摄像头或后置摄像头也可以不和显示屏集成设置,当然在实际应用中,上述前置摄像头或后置摄像头还可以为升降结构,本申请具体实施方式并不限制上述前置摄像头或后置摄像头的具体结构。
输入-输出电路150还可以包括一个或多个显示屏,当为多个显示屏时,例如2个显示屏时,一个显示屏可以设置在电子设备的前面,另一个显示屏可以设置在电子设备的后面,例如显示屏130。显示屏130可以包括液晶显示屏,透明显示屏,有机发光二极管显示屏,电子墨水显示屏,等离子显示屏,使用其它显示技术的显示屏中一种或者几种的组合。显示屏130可以包括触摸传感器阵列(即,显示屏130可以是触控显示屏)。触摸传感器可以是由透明的触摸传感器电极(例如氧化铟锡(ITO)电极)阵列形成的电容式触摸传感器,或者可以是使用其它触摸技术形成的触摸传感器,例如音波触控,压敏触摸,电阻触摸,光学触摸等,本申请实施例不作限制。
终端100还可以包括音频组件140。音频组件140可以用于为终端100提供音频输入和输出功能。终端100中的音频组件140可以包括扬声器,麦克风,蜂鸣器,音调发生器以及其它用于产生和检测声音的组件。
通信电路120可以用于为终端100提供与外部设备通信的能力。通信电路120可以包括模拟和数字输入-输出接口电路,和基于射频信号和/或光信号的无线通信电路。通信电路120中的无线通信电路可以包括射频收发器电路、功率放大器电路、低噪声放大器、开关、滤波器和天线。举例来说,通信电路120中的无线通信电路可以包括用于通过发射和接收近场耦合电磁信号来支持近场通信(Near Field Communication,NFC)的电路。例如,通信电路120可以包括近场通信天线和近场通信收发器。通信电路120还可以包括蜂窝电话收发器和天线,无线局域网收发器电路和天线等。
终端100还可以进一步包括电池,电力管理电路和其它输入-输出单元160。输入-输出单元160可以包括按钮,操纵杆,点击轮,滚动轮,触摸板,小键盘,键盘,照相机,发光二极管和其它状态指示器等。
用户可以通过输入-输出电路150输入命令来控制终端100的操作,并且可以使用输入-输出电路150的输出数据以实现接收来自终端100的状态信息和其它输出。
参阅图2,图2提供了一种操作系统内存回收的页颠簸保护方法,该方法可以应用于如图1所示的用户设备UE,该UE的具体结构可以为如图1所示的终端结构,该方法如图2所示,包括如下步骤:
步骤S201、UE对多个应用场景进行数据采集得到颠簸页数据集合;
上述步骤S201中的多个应用场景的实现方式可以有多种,例如,在一种可选的实施方案中,一个应用程序可以对应一个应用场景,多个应用场景可以对应多个应用程序,例如多个app,每个app运行对应一个应用场景。在另一种可选的方式方案中,多个应用程序可以对应一个应用场景。当然在实际实施方案中,还可以为其他方式对应一个应用场景,例如,不同的网络连接方式对应一个应用场景,例如,wifi模式对应一个应用场景,5G模式对应一个应用场景。等等。
上述步骤S201的实现方法具体可以包括:
抽取多个应用场景中的ftrace信息中的pagecache添加/删除记录,从添加/删除记录中查找出符合相等原则的添加/删除记录作为所述颠簸页数据集合中的一个元素;
所述相等原则为:相同类型且添加/删除记录中相同页的添加记录以及删除记录。
其实现的方法具体可以包括:
UE运行多个应用场景,每运行一个应用场景,系统抽取ftrace信息中的pagecache添加记录以及pagecache删除记录,这样即得到多个pagecache添加记录以及多个pagecache删除记录,从多个pagecache添加记录以及多个pagecache删除记录查找相同类型的相同页,该相同页即包含在多个pagecache添加记录之中,也包含在多个pagecache删除记录之中。
上述相同类型包括:pid、time、dev、ino或ofs。
步骤S202、UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;
在一种可选的方案中,上述步骤S202的实现方法具体可以包括:
UE对颠簸页数据集合中各元素求交集,具有将所有应用场景中均发生颠簸的页集合到list_thrashing_common。对于list_thrashing_common中的元素,即所有的应用场景中均发生颠簸的页。
UE对颠簸页数据集合中各元素求和集,具有将所有应用场景中发生过颠簸的页(发生过一次或多次的颠簸页)集合到list_thrashing_all。对于list_thrashing_all中的元素,即至少一个应用场景中发生颠簸的页。
步骤S203、UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
上述步骤S203的实现方法具体可以包括:
UE将所述list_thrashing_common以及所述list_thrashing_all中的每个元素以块block为基本单元进行保护。
对于所述list_thrashing_common以及所述list_thrashing_all的元素以颠簸页为基本元素,每个颠簸页可能包含一个或多个block,在一种方案中,若所有颠簸页包含的block的数量较小(例如低于数量阈值),则对所有block进行保护(即UE在物理内存中锁定所有block)。在另一种可选方案中,若所有颠簸页包含的block的数量较大(例如大于等于数量阈值),则对部分block进行保护,例如,对颠簸次数较多的block进行保护,即UE在物理内存中锁定颠簸次数较多的block。
本申请提供的技术方案UE对多个应用场景进行数据采集得到颠簸页数据集合;UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。由于本申请的保护基本单元为block,相对于页为基本单元的保护,block保护的粒度更小,这样对于多个颠簸页可以具有相同的block,并且由于block的容量比页的容量小,因此物理内存锁定的内存容量更小,避免了多余的物理内存被锁定,提高了系统性能,提高了用户体验度。
在一种可选的方案中,上述UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护具体包括:
UE扩展操作系统的PinnerService功能,所述扩展PinnerService功能用于在所述list_thrashing_common以及所述list_thrashing_all按块进行保护。
在一种可选的方案中,上述方法在步骤S203之后,还可以包括:
将所述list_thrashing_common或者所述list_thrashing_all更新到操作系统的设备资源文件中进行编译。
在一种可选的方案中,上述方法在步骤S203之后,还可以包括:
UE启动dumpsys pinner查看已经锁在物理内存中的文件页,若所述文件页包含进行保护的块,确定文件页已锁定。
参阅图3,图3提供了一种操作系统内存回收的页颠簸保护装置,所述装置应用于用户设备UE,所述装置包括:
采集单元301,用于对多个应用场景进行数据采集得到颠簸页数据集合;
处理单元302,用于对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
本申请提供的技术方案操作系统内存回收的页颠簸保护装置对多个应用场景进行数据采集得到颠簸页数据集合;操作系统内存回收的页颠簸保护装置对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。由于本申请的保护基本单元为block,相对于页为基本单元的保护,block保护的粒度更小,这样对于多个颠簸页可以具有相同的block,并且由于block的容量比页的容量小,因此物理内存锁定的内存容量更小,避免了多余的物理内存被锁定,提高了系统性能,提高了用户体验度。
在一种可选的方案中,
处理单元302,具体用于扩展操作系统的PinnerService功能,所述扩展PinnerService功能用于在所述list_thrashing_common以及所述list_thrashing_all按块进行保护。
在一种可选的方案中,
处理单元302,还用于将所述list_thrashing_common或者所述list_thrashing_all更新到操作系统的设备资源文件中进行编译。
在一种可选的方案中,
处理单元302,还用于启动dumpsys pinner查看已经锁在物理内存中的文件页,若所述文件页包含进行保护的块,确定文件页已锁定。
在一种可选的方案中,
采集单元301,具体用于抽取多个应用场景中的ftrace信息中的pagecache添加/删除记录,从添加/删除记录中查找出符合相等原则的添加/删除记录作为所述颠簸页数据集合中的一个元素;
所述相等原则为:相同类型且添加/删除记录中相同页的添加记录以及删除记录。
在如图3所示实施例中,上述处理单元以及采集单元的细化方案可以参见如图2所示实施例的描述,这里不再赘述。
参阅图4,图4提供了一种终端,包括:
采集模块401,用于对多个应用场景进行数据采集得到颠簸页数据集合;
处理模块402,用于对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
如图4所示的终端中的处理模块以及采集模块的具体处理方式可以参见如图2所示实施例的描述,这里不在赘述。
请参见图5,图5是本申请实施例提供的一种设备70,该设备70包括处理器701、存储器702和通信接口703,所述处理器701、存储器702和通信接口703通过总线704相互连接。
存储器702包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmableread only memory,EPROM)、或便携式只读存储器(compact disc read-only memory,CD-ROM),该存储器702用于相关计算机程序及数据。通信接口703用于接收和发送数据。
处理器701可以是一个或多个中央处理器(central processing unit,CPU),在处理器701是一个CPU的情况下,该CPU可以是单核CPU,也可以是多核CPU。
该设备70中的处理器701用于读取所述存储器702中存储的计算机程序代码,执行以下操作:
对多个应用场景进行数据采集得到颠簸页数据集合;
对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;
将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
在一种可选的方案中,上述存储的计算机程序代码还可以执行以下操作:
扩展操作系统的PinnerService功能,所述扩展PinnerService功能用于在所述list_thrashing_common以及所述list_thrashing_all按块进行保护。
在一种可选的方案中,上述存储的计算机程序代码还可以执行以下操作:
将所述list_thrashing_common或者所述list_thrashing_all更新到操作系统的设备资源文件中进行编译。
在一种可选的方案中,上述存储的计算机程序代码还可以执行以下操作:
UE启动dumpsys pinner查看已经锁在物理内存中的文件页,若所述文件页包含进行保护的块,确定文件页已锁定。
在一种可选的方案中,上述存储的计算机程序代码还可以执行以下操作:
UE抽取多个应用场景中的ftrace信息中的pagecache添加/删除记录,从添加/删除记录中查找出符合相等原则的添加/删除记录作为所述颠簸页数据集合中的一个元素;
所述相等原则为:相同类型且添加/删除记录中相同页的添加记录以及删除记录。
本申请实施例还提供一种芯片系统,所述芯片系统包括至少一个处理器,存储器和接口电路,所述存储器、所述收发器和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机程序;所述计算机程序被所述处理器执行时,图2所示的方法流程得以实现。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,当其在网络设备上运行时,图2所示的方法流程得以实现。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在终端上运行时,图2所示的方法流程得以实现。
本申请实施例还提供一种终端,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行图2所示实施例的方法中的步骤的指令。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模板。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模板并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种操作系统内存回收的页颠簸保护方法,其特征在于,所述方法应用于用户设备UE,所述方法包括如下步骤:
UE对多个应用场景进行数据采集得到颠簸页数据集合;
UE对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;
UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
2.根据权利要求1所述的方法,其特征在于,所述UE将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护具体包括:
UE扩展操作系统的PinnerService功能,所述扩展PinnerService功能用于在所述list_thrashing_common以及所述list_thrashing_all按块进行保护。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述list_thrashing_common或者所述list_thrashing_all更新到操作系统的设备资源文件中进行编译。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
UE启动dumpsys pinner查看已经锁在物理内存中的文件页,若所述文件页包含进行保护的块,确定文件页已锁定。
5.根据权利要求1-4任意一项所述的方法,其特征在于,所述UE对多个应用场景进行数据采集得到颠簸页数据集合具体包括:
UE抽取多个应用场景中的ftrace信息中的pagecache添加/删除记录,从添加/删除记录中查找出符合相等原则的添加/删除记录作为所述颠簸页数据集合中的一个元素;
所述相等原则为:相同类型且添加/删除记录中相同页的添加记录以及删除记录。
6.根据权利要求5所述的方法,其特征在于,
所述相同类型包括:pid、time、dev、ino或ofs。
7.一种操作系统内存回收的页颠簸保护装置,其特征在于,所述装置应用于用户设备UE,所述装置包括:
采集单元,用于对多个应用场景进行数据采集得到颠簸页数据集合;
处理单元,用于对所述颠簸页数据集合中各个元素求交集得到所述多个应用场景中都发生颠簸的页集合list_thrashing_common;对所述颠簸页数据集合中各个元素求合集得到所有发生过颠簸的页集合list_thrashing_all;将所述list_thrashing_common以及所述list_thrashing_all以块block为基本单元进行保护。
8.根据权利要求7所述的装置,其特征在于,
所述处理单元,具体用于扩展操作系统的PinnerService功能,所述扩展PinnerService功能用于在所述list_thrashing_common以及所述list_thrashing_all按块进行保护。
9.根据权利要求7所述的装置,其特征在于,
所述处理单元,还用于将所述list_thrashing_common或者所述list_thrashing_all更新到操作系统的设备资源文件中进行编译。
10.根据权利要求7所述的装置,其特征在于,
所述处理单元,还用于启动dumpsys pinner查看已经锁在物理内存中的文件页,若所述文件页包含进行保护的块,确定文件页已锁定。
11.根据权利要求7-10任意一项所述的装置,其特征在于,
所述采集单元,具体用于抽取多个应用场景中的ftrace信息中的pagecache添加/删除记录,从添加/删除记录中查找出符合相等原则的添加/删除记录作为所述颠簸页数据集合中的一个元素;
所述相等原则为:相同类型且添加/删除记录中相同页的添加记录以及删除记录。
12.一种终端,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-6任一项所述的方法中的步骤的指令。
13.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-6任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551527.9A CN111666227B (zh) | 2020-06-16 | 2020-06-16 | 操作系统内存回收的页颠簸保护方法及装置 |
PCT/CN2021/098652 WO2021254200A1 (zh) | 2020-06-16 | 2021-06-07 | 操作系统内存回收的页颠簸保护方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010551527.9A CN111666227B (zh) | 2020-06-16 | 2020-06-16 | 操作系统内存回收的页颠簸保护方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666227A true CN111666227A (zh) | 2020-09-15 |
CN111666227B CN111666227B (zh) | 2021-09-07 |
Family
ID=72387740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010551527.9A Active CN111666227B (zh) | 2020-06-16 | 2020-06-16 | 操作系统内存回收的页颠簸保护方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111666227B (zh) |
WO (1) | WO2021254200A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113051186A (zh) * | 2021-03-08 | 2021-06-29 | 北京紫光展锐通信技术有限公司 | 内存回收中页颠簸的处理方法、装置及电子设备 |
WO2021254200A1 (zh) * | 2020-06-16 | 2021-12-23 | 北京紫光展锐通信技术有限公司 | 操作系统内存回收的页颠簸保护方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111896A (zh) * | 2014-07-30 | 2014-10-22 | 云南大学 | 大数据处理中的虚拟内存管理方法及其装置 |
CN105095099A (zh) * | 2015-07-21 | 2015-11-25 | 浙江大学 | 一种基于内存页位图变更的大内存页整合方法 |
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN107729091A (zh) * | 2017-11-30 | 2018-02-23 | 天津光电通信技术有限公司 | 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法 |
US10691481B2 (en) * | 2018-03-16 | 2020-06-23 | Nutanix, Inc. | System and method for detection of underprovisioning of memory in virtual machines |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8464023B2 (en) * | 2010-08-27 | 2013-06-11 | International Business Machines Corporation | Application run-time memory optimizer |
CN108228341B (zh) * | 2017-08-07 | 2021-03-02 | 珠海市魅族科技有限公司 | 内存回收方法及装置、终端设备及计算机可读存储介质 |
CN109697119A (zh) * | 2017-10-20 | 2019-04-30 | 中兴通讯股份有限公司 | 终端内存回收处理方法及装置 |
CN109992523B (zh) * | 2017-12-29 | 2021-06-01 | Oppo广东移动通信有限公司 | 内存处理方法和装置、电子设备、计算机可读存储介质 |
CN110908923B (zh) * | 2018-09-14 | 2023-05-02 | 阿里巴巴集团控股有限公司 | 内存回收方法及装置 |
CN109086141B (zh) * | 2018-09-19 | 2021-01-26 | 北京京东尚科信息技术有限公司 | 内存管理方法和装置以及计算机可读存储介质 |
CN111666227B (zh) * | 2020-06-16 | 2021-09-07 | 北京紫光展锐通信技术有限公司 | 操作系统内存回收的页颠簸保护方法及装置 |
-
2020
- 2020-06-16 CN CN202010551527.9A patent/CN111666227B/zh active Active
-
2021
- 2021-06-07 WO PCT/CN2021/098652 patent/WO2021254200A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104111896A (zh) * | 2014-07-30 | 2014-10-22 | 云南大学 | 大数据处理中的虚拟内存管理方法及其装置 |
CN105095099A (zh) * | 2015-07-21 | 2015-11-25 | 浙江大学 | 一种基于内存页位图变更的大内存页整合方法 |
CN106569745A (zh) * | 2016-10-25 | 2017-04-19 | 暨南大学 | 一种内存过载下面向重复数据删除的内存优化系统 |
CN107729091A (zh) * | 2017-11-30 | 2018-02-23 | 天津光电通信技术有限公司 | 基于Zynq的嵌入式系统平台及Linux内核相关文件生成方法 |
US10691481B2 (en) * | 2018-03-16 | 2020-06-23 | Nutanix, Inc. | System and method for detection of underprovisioning of memory in virtual machines |
Non-Patent Citations (2)
Title |
---|
刘瑞锴等: "内存过载下基于重删的内存优化策略", 《小型微型计算机系统》 * |
斯雷: "一种基于混合页面的磁盘缓存去重策略", 《小型微型计算机系统》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021254200A1 (zh) * | 2020-06-16 | 2021-12-23 | 北京紫光展锐通信技术有限公司 | 操作系统内存回收的页颠簸保护方法及装置 |
CN113051186A (zh) * | 2021-03-08 | 2021-06-29 | 北京紫光展锐通信技术有限公司 | 内存回收中页颠簸的处理方法、装置及电子设备 |
CN113051186B (zh) * | 2021-03-08 | 2022-06-24 | 北京紫光展锐通信技术有限公司 | 内存回收中页颠簸的处理方法、装置及电子设备 |
WO2022188778A1 (zh) * | 2021-03-08 | 2022-09-15 | 北京紫光展锐通信技术有限公司 | 内存回收中页颠簸的处理方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111666227B (zh) | 2021-09-07 |
WO2021254200A1 (zh) | 2021-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11133563B2 (en) | Method of detecting swelling of battery using pressure sensor and electronic device using the method | |
US20190220318A1 (en) | Memory Reclamation Method and Apparatus | |
US11337042B2 (en) | Short message processing method and apparatus, and electronic device | |
EP3404538B1 (en) | Data processing method, and data processing apparatus | |
CN109543570B (zh) | 指纹识别方法及相关产品 | |
JP6870158B2 (ja) | メモリを処理するための方法および装置ならびに記憶媒体 | |
CN106126015A (zh) | 一种应用程序启动控制方法及终端 | |
CN111666227B (zh) | 操作系统内存回收的页颠簸保护方法及装置 | |
CN110018902B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN106127481A (zh) | 一种指纹支付方法及终端 | |
CN109992402B (zh) | 内存处理方法和装置、电子设备、计算机可读存储介质 | |
CN106776908B (zh) | 数据清理方法、装置及终端 | |
CN113900699B (zh) | 一种系统升级方法和电子设备 | |
CN103269374A (zh) | 录音同步方法、装置和设备 | |
CN106372076B (zh) | 浏览器中网页切换方法及装置 | |
CN111104180B (zh) | 应用程序优化方法、装置、存储介质及电子设备 | |
CN107872367B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN111666226B (zh) | 操作系统内存回收的页颠簸保护方法及用户设备 | |
CN110837343B (zh) | 处理快照的方法、装置及终端 | |
CN110069322B (zh) | 后台应用的处理方法、终端设备及存储介质 | |
CN112703534B (zh) | 图像处理方法及相关产品 | |
CN106657544A (zh) | 一种来电录音的方法及终端设备 | |
CN112435671B (zh) | 汉语精准识别的智能化语音控制方法及系统 | |
CN111443938B (zh) | 系统更新方法、装置、存储介质及移动终端 | |
CN106790361A (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 |