CN115357389A - 内存管理方法、装置及电子设备 - Google Patents
内存管理方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115357389A CN115357389A CN202211008538.8A CN202211008538A CN115357389A CN 115357389 A CN115357389 A CN 115357389A CN 202211008538 A CN202211008538 A CN 202211008538A CN 115357389 A CN115357389 A CN 115357389A
- Authority
- CN
- China
- Prior art keywords
- display
- page
- application
- compression
- compression algorithm
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- 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/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Digital Computer Display Output (AREA)
Abstract
本申请公开了一种内存管理方法、装置及电子设备,属于通信技术领域。该方法包括:在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩第一应用的第一显存页;在第一应用的后台运行时长大于或等于第二预设时长的情况下,基于第二压缩算法压缩第一应用的第二显存页;其中,第一压缩算法的压缩率小于第二压缩算法的压缩率;第一显存页和第二显存页满足以下任意一项:第一显存页为热页面,第二显存页为冷页面;第一显存页和第二显存页均为冷页面,且第一显存页的未访问时长大于第二显存页的未访问时长。
Description
技术领域
本申请属于通信技术领域,具体涉及一种内存管理方法、装置及电子设备。
背景技术
目前,诸如手机、平板电脑之类的电子设备中可安装各类应用(application,APP),以扩充电子设备的功能。在相关电子设备中,进入后台运行的应用所占用的内存并不能完全被释放,从而导致电子设备中的可用内存因为应用占用内存的逐步增大而越来越不足。当电子设备的可用内存较少时,电子设备的运行速度将变慢,甚至出现卡顿等情况。
发明内容
本申请实施例的目的是提供一种内存管理方法、装置及电子设备,能够解决进入后台运行的应用所占用的内存不能被有效释放的技术问题。
第一方面,本申请实施例提供了一种内存管理方法,该方法包括:
在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
第二方面,本申请实施例提供了一种内存管理装置,该装置包括:
压缩模块,用于在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
压缩模块还用于在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,存储器存储可在处理器上运行的程序或指令,程序或指令被处理器执行时实现如第一方面提供的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如第一方面提供的方法的步骤。
第五方面,本申请实施例提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现如第一方面提供的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面提供的方法。
在本申请内存管理方法、装置及电子设备中,可以根据第一应用的后台运行时长,对第一应用所占用的内存进行压缩处理,从而实现对第一应用所占用的内存进行有效回收,提高电子设备的可用内存,在一定程度上避免或减小由于可用内存较少导致的电子设备运行速度缓慢、卡顿等情况;通过设置具有不同压缩率的压缩算法分别对第一应用的第一显存页和第二显存页进行压缩,从而可实现对第一应用所占用的内存进行不同压缩处理,以提高第一应用所占用内存的整体压缩率,并降低压缩显存页的平均时间,降低压缩显存页对第一应用唤醒速度的影响。
附图说明
图1是本申请一个实施例提供的内存管理方法的流程示意图;
图2是本申请实施例中内存管理方法的原理示意图之一;
图3是本申请实施例中内存管理方法的原理示意图之一;
图4是本申请一个实施例提供的内存管理方法的流程示意图;
图5是本申请实施例中内存管理方法的原理示意图之一;
图6是本申请一个实施例提供的内存管理方法的流程示意图;
图7是本申请一个实施例提供的内存管理方法的流程示意图;
图8是本申请一个实施例提供的内存管理方法的流程示意图;
图9是本申请实施例中内存管理方法的原理示意图之一;
图10是本申请另一个实施例提供的内存管理装置的结构示意图;
图11是本申请又一个实施例提供的电子设备的结构示意图;
图12是本申请实施例中提供的电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
目前,诸如手机、平板电脑之类的电子设备中可安装各类应用(application,APP),以扩充电子设备的功能。在相关电子设备中,进入后台运行的应用所占用的内存并不能完全被释放,从而导致电子设备中的可用内存因为应用占用内存的逐步增大而越来越不足。当电子设备的可用内存较少时,电子设备的运行速度将变慢,甚至出现卡顿等情况。
在相关电子设备中,除设置有中央处理器CPU(central processing unit)外,还设置有计算机图形处理器GPU(Graphic Processing Unit),该GPU是专门用于处理图形信息的核心处理器。与CPU相似的是,GPU同样具有与其处理能力相对应的内存,以用于存放即将被GPU处理以及处理过的图形信息。而相关技术中,GPU所占用的GPU内存不能被内核内存回收机制管理,导致进入后台运行的应用所占用的GPU内存不能被有效回收,造成了一定的内存闲置,降低了电子设备的可用内存。
为解决上述技术问题,本申请提供了一种内存管理方法。下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存管理方法进行详细地说明。
如图1所示,图1是本申请一个实施例提供的内存管理方法的流程示意图,本申请实施例提供一种内存管理方法,该方法可以包括:
S101,在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩第一应用的第一显存页;
S102,在第一应用的后台运行时长大于或等于第二预设时长的情况下,基于第二压缩算法压缩第一应用的第二显存页;
其中,第一压缩算法的压缩率小于第二压缩算法的压缩率;
第一显存页和第二显存页满足以下任意一项:
第一显存页为热页面,第二显存页为冷页面;
第一显存页和第二显存页均为冷页面,且第一显存页的未访问时长大于第二显存页的未访问时长。
本申请实施例中,电子设备的操作系统可以是基于linux内核的系统,例如,安卓操作系统等。电子设备的操作系统和应用程序的运行,都对应分配内存。第一应用可以为在后台运行的任一应用程序。应用在后台运行可以理解为该应用程序的相关进程所占用的CPU资源、GPU资源受到限制,使相关进程占用较少的CPU资源、GPU资源,将空余的CPU资源、GPU资源提供给其他应用;还可以理解为该应用程序的相关进程被禁止使用CPU资源、GPU资源,但保留对内存的占用。当接收到用户对该后台运行的第一应用切换至前台运行的输入时,重新对该第一应用分配CPU资源、GPU资源。在该第一应用占用的内存未被回收分配的情况下,在接收到用户对该后台运行的第一应用切换至前台运行的输入时,第一应用可以快速的重新运行并显示。
针对一个第一应用,维护一个GPU热页链表(GPUActive List链表)和一个GPU冷页链表(GPU Inactive List链表),两个链表中维护了第一应用的全部显存页(page),每个显存页具有物理内存地址,该物理内存地址与一虚拟内存地址对应,GPU可以通过虚拟内存地址来间接地访问对应的物理内存地址,从而访问该物理内存地址对应的显存页中的数据。每个显存页可以与一个或多个线程关联,当线程访问显存页对应的虚拟内存地址时,则可以访问到该显存页中的数据。GPU热页链表存放热页面,位于GPU热页链表中的热页面表示其存储使用频率较高的热点数据。GPU冷页链表存放冷页面,位于GPU冷页链表中的冷页面表示其存储使用频率较低的数据。
将第一应用的全部或部分显存页进行压缩,即是对第一应用所占用的部分或全部内存进行压缩。可以对部分或全部显存页进行压缩,再将得到的压缩文件存储至磁盘中,以释放一部分内存空间,获得更多可用内存。在需要使用这些显存页中的数据时,再对压缩文件进行解压缩,以方便GPU读取。
本申请中,用于压缩显存页的第一压缩算法和第二压缩算法为两个不同的压缩算法,两者具有不同的压缩率。本领域技术人员可以理解的是,压缩同样大小的文件,压缩算法对应的压缩率越大,得到的压缩文件越小,进行压缩或解压缩所需时间越长。所以在本申请中对同样大小的若干显存页进行压缩时,采用第一压缩算法进行压缩所需时间较短,压缩得到的压缩文件较大,解压缩所需时间较短;采用第二压缩算法进行压缩所需时间较长,压缩得到的压缩文件较小,解压缩所需时间较长。
由于第一应用进入后台运行后,在一定时间范围内被再次唤醒的可能性较高,并且随着第一应用进入后台运行的时间逐渐增加,第一应用在单位时间内被再次唤醒的可能性越小,所以为了提高电子设备的可用内存,可以对第一应用占用的全部或部分显存页进行压缩。然而解压缩已压缩的显存页的过程需要耗费一定运算资源和时间,对于一些实时性要求较高的线程,可能导致该线程出现卡顿,为了保证第一应用重新运行并显示的速率,电子设备可以预先设置有第一预设时长和第二预设时长,以及第一压缩算法和第二压缩算法,针对不同显存页采用具有不同压缩率的压缩算法进行压缩。可选地,在第一应用的后台运行时长小于或等于第一预设时长的情况下,对第一应用占用的内存可以不做压缩处理,该第一预设时长可以参照对进入后台运行的第一应用进行冻结处理的时间设置。在接收到关于第一应用切换至前台运行的输入时,仅需重新分配GPU资源,即可重新运行并显示第一应用的运行界面。在后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩第一应用的第一显存页,在接收到关于第一应用切换至前台运行的输入时,仅需采用第一压缩算法解压缩已压缩的第一显存页,并重新分配GPU资源,即可重新运行并显示第一应用的运行界面。在第一应用的后台运行时长大于或等于第二预设时长的情况下,基于第二压缩算法压缩第一应用的第二显存页,在接收到关于第一应用切换至前台运行的输入时,仅需采用第一压缩算法解压已压缩的第一显存页和第二显存页,并重新分配GPU资源,即可重新运行并显示第一应用的运行界面。
例如:第一压缩算法可以是LZ4,第二压缩算法可以是ZSTD,LZ4的压缩率小于ZSTD,但是LZ4的压缩速度和解压速度大于ZSTD。第一预设时长为10min,第二预设时长为30min,那么在后台运行时长为20min的情况下,后台运行时长大于第一预设时长且小于第二预设时长,则采用第一压缩算法LZ4对所占用第一显存页进行压缩;在后台运行时长为40min的情况下,后台运行时长大于第二预设时长,则采用第二压缩算法ZSTD对所占用第二显存页进行压缩。当然,本申请中第一预设时长和第二预设时长可以由电子设备自动设置,也可以由用户手动设置,在此不作限定。该第一预设时长和第二预设时长可以设置为1秒、设置为1分钟、设置为1小时等,在此不做限定。
请结合参阅图2,在一些实施例中,由于相较于冷页面,热页面被访问的频率较高,已压缩的热页面被重新访问的频率较高,所以可以采用压缩速度较快、解压缩速度较快、压缩率低的第一压缩算法压缩热页面,以提高热页面压缩和解压缩效率。相较于热页面,冷页面被访问的频率较低,已压缩的冷页面被重新访问的频率较低,所以可以通过相对压缩率较高、压缩速度较慢、解压缩速度较慢的第二压缩算法压缩冷页面,从而增大已压缩的显存页的整体压缩率。
请结合参阅图1和图3,在另一些实施例中,第一显存页和第二显存页均为冷页面,第一显存页的未访问时长大于第二显存页的未访问时长,相对而言,第一显存页被访问的频率较低,第二显存页被访问的频率较高,那么可以采用相对压缩速度较快、解压缩速度较快、压缩率低的第一压缩算法压缩第一显存页,以提高冷页面压缩和解压缩效率,通过相对压缩率较高、压缩速度较慢、解压缩速度较慢的第二压缩算法压缩第二显存页,从而增大已压缩的冷页面整体压缩率。
本领域技术人员可以理解的是,本申请中基于第一压缩算法压缩的第一显存页可以是一个或多个显存页,同样,基于第二压缩算法压缩的第二显存页可以是一个或多个显存页。
在本申请中,可以根据第一应用的后台运行时长,对第一应用所占用的内存进行压缩处理,从而实现对第一应用所占用的内存进行有效回收,提高电子设备的可用内存,在一定程度上避免或减小由于可用内存较少导致的电子设备运行速度缓慢、卡顿等情况;通过设置具有不同压缩率的压缩算法分别对第一应用的第一显存页和第二显存页进行压缩,从而可实现对第一应用所占用的内存进行不同压缩处理,以提高第一应用所占用内存的整体压缩率,并降低压缩显存页的平均时间,降低压缩显存页对第一应用唤醒速度的影响。
在基于第一压缩算法和第二压缩算法对显存页进行压缩的基础上,还可以设置其他压缩算法,以采用至少三种压缩算法对显存页进行压缩。请参阅图4,在一些实施例中,S102包括:
S401,在第一应用的后台运行时长大于或等于第二预设时长且小于第三预设时长的情况下,基于第二压缩算法压缩第一应用的第二显存页;
上述内存管理方法还包括:
S402,在第一应用的后台运行时长大于或等于第三预设时长的情况下,基于第三压缩算法压缩第一应用的第三显存页;
其中,第二压缩算法的压缩率小于第三压缩算法的压缩率;
第一显存页为热页面,第二显存页和第三显存页均为冷页面,且第二显存页的未访问时长大于第三显存页的未访问时长
在本实施例中,除提供第一压缩算法和第二压缩算法,还提供第三压缩算法,第一压缩算法的压缩率、第二压缩算法的压缩率和第三压缩算法的压缩率依次增大,相应的,压缩或解压缩同样大小的文件,第一压缩算法所需的时长、第二压缩算法所需的时长和第三压缩算法所需的时长依次增大。
随着第一应用的后台运行时间逐渐增加,可先基于第一压缩算法对第一显存页进行压缩,再基于第二压缩算法对第二显存页进行压缩,最后基于第三压缩算法对冷页面的第三显存页进行压缩。其中,可以基于第一压缩算法对第一应用对应的全部或部分热页面进行压缩,可以基于第二压缩算法和第三压缩算法对第一应用对应的全部或部分冷页面进行压缩。由于GPU冷页链表中越靠近尾部的显存页对应的未访问时间越长,越靠近头部的显存页对应的未访问时间越短,可选地,先基于第二压缩算法对GPU冷页链表中靠近尾部端的冷页面进行压缩,再基于第三压缩算法对GPU冷页链表中其余未被压缩的冷页面进行压缩,以减小压缩显存页对GPU访问冷页面的速率影响。
在上述实施例中,通过基于不同压缩率的第一压缩算法、第二压缩算法和第三压缩算法对第一应用不同显存页进行压缩,以提高第一应用所占用内存的整体压缩率,并降低压缩第一应用所占用内存的效率。本领域技术人员可以理解的是,还可以设置压缩率依次增大的第四压缩算法、第五压缩算法、第六压缩算法等,将具有较大压缩率的压缩算法用于压缩未访问时长更长的显存页,将具有较小压缩率的压缩算法用于压缩未访问时长更短的显存页。
在一些实施例中,第一应用对应的冷页面为m个,第二显存页的数量为n个,第三显存页的数量为m-n个,n和m均为正整数。即通过第二压缩算法和第三压缩算法对第一应用占用的所有冷页面进行压缩。可选地,第二显存页的数量占冷页面的数量m的比值为a,第三显存页的数量占冷页面的数量m的比值为b,a>b。
通过设置a>b,使得被第二压缩算法压缩的第二显存页多于被第三压缩算法压缩的第三显存页,由于第二压缩算法的解压缩速率大于第三压缩算法的解压缩速率,从而减小压缩显存页对GPU访问冷页面的速率影响。
可选地,可以设置a为60%,b为40%。本领域技术人员可以根据需要自行设置比例,以使GPU冷页链表中基于第二压缩算法压缩的第二显存页多于基于第三压缩算法压缩的第三显存页。示例性的,第一压缩算法可以是LZ4,第二压缩算法可以是ZSTD。LZ4、ZSTD和XZ的压缩率依次增大,但是LZ4、ZSTD和xz的压缩速度依次减小。
请参阅图6,在一些实施例中,内存管理方法还包括:
S601,接收第一输入,第一输入用于将第一应用由后台运行切换至前台运行;
S602,响应于第一输入,在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,取消压缩第一显存页中未压缩的显存页,对至少部分第一显存页中已压缩的显存页解压缩。
第一输入可以是触控输入,例如触控输入可以是触控点击操作,还可以是滑动操作,或者其他操作。第一输入还可以是用户借助与电子设备连接的鼠标、遥控设备、键盘等其他输入设备执行的输入操作。可选地,第一输入为对第一应用对应的图标的点击操作。若无特殊说明,以下介绍中对电子设备的输入均可以是触控点击操作、滑动操作或者其他操作,还可以是用户借助与电子设备连接的鼠标、遥控设备、键盘等其他输入设备执行的输入操作。
第一应用由后台运行切换至前台运行,可以理解为需要重新对该第一应用分配CPU资源、GPU资源,对全部或部分已压缩的显存页进行解压,并将解压的热页面重新加载至GPU热页链表,解压的冷页面重新加载至GPU冷页链表,以供GPU访问。
在接收第一输入之前,且在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,正在基于第一压缩算法压缩第一显存页,或已经基于第一压缩算法完成对所有第一显存页的压缩处理。在接收第一输入之后,取消压缩第一显存页中未压缩的显存页,对至少部分第一显存页中已压缩的显存页解压缩,以使GPU可以快速访问到第一显存页,减小或避免第一应用在切换至前台运行过程中出现卡顿现象。
请参阅图7,在另一些实施例中,该内存管理方法还包括:
S701,接收第二输入,第二输入用于将第一应用由后台运行切换至前台运行;
S702,响应于第二输入,在第一应用的后台运行时长大于或等于第二预设时长的情况下,取消压缩第二显存页中未压缩的显存页,对至少部分第二显存页中已压缩的显存页解压缩。
在接收第二输入之前,且在第一应用的后台运行时长大于或等于第二预设时长的情况下,已经基于第一压缩算法完成对所有的第一显存页的压缩处理,并且正在基于第二压缩算法压缩第二显存页,或已经基于第二压缩算法完成对所有第二显存页的压缩处理。在接收第二输入之后,取消压缩第二显存页中未压缩的显存页,对至少部分第二显存页中已压缩的显存页解压缩,以使GPU可以快速访问到第二显存页,减小或避免第一应用在切换至前台运行过程中出现卡顿现象。
由于在对第二显存页进行压缩处理之前,已完成对第一显存页的压缩处理,所以为了避免发生GPU无法访问第一显存页或访问第一显存页速度慢的情况,在对至少部分第二显存页中已压缩的显存页解压缩的同时,还可以对已压缩的第一显存页解压缩。
可选地,已压缩的第一显存页中至少30%基于第一压缩算法进行解压缩,已压缩的第二显存页中至少80%基于第二压缩算法进行解压缩,已压缩的第三显存页中至少100%基于第三压缩算法进行解压缩。同样由于各压缩算法对应的压缩速率不同,通过解压缩不同比例的显存页,在保证第一应用在前台正常运行的同事,避免解压缩显存页占用过多运算资源。
在一些实施例中,S702之后,该内存管理方法还包括:
S703,在第二显存页中已压缩的显存页解压完成的情况下,对至少部分第一显存页解压缩。
由于第一压缩算法的解压速率大于第二压缩算法的解压速率,解压缩一第一显存页花费的时间小于解压缩一第二显存页花费的时间,也就是第二显存页是否完全解压缩、已解压缩的第二显存页占全部第二显存页的比例对第一应用是否卡顿的影响大于第一显存页是否完全解压缩、已解压缩的第一显存页占全部第一显存页的比例。所以采用先解压缩第二显存页,再解压缩第一显存页,从而避免或减小第一应用由后台运行切换至前台运行的显示卡顿。
请参阅图8,在一些实施例中,内存管理方法还包括:
S801,获取第一应用的预测信息,预测信息包括第一应用从后台运行切换至前台运行的时间;
S802,在预测信息满足预设条件的情况下,对至少部分已压缩的第一显存页解压缩,对至少部分已压缩的第二显存页解压缩,第一显存页的解压率小于第二显存页的解压率。
可以对安装在该电子设备中的第一应用的运行时间进行统计分析,得到预测信息,也可以针对第一应用在多个电子设备中的运行时间进行统计分析,得到预测信息。当然,本申请中预设条件可以由电子设备自动设置,也可以由用户手动设置,在此不做限定。另外,该预设条件可以是在电子设备的系统时间距离第一应用切换至前台运行的间隔时间小于或等于预设时长、电子设备的系统时间等于第一应用切换至前台运行的时间等,在此不作限定。在预测信息满足预设条件的情况下,可以认为第一应用从后台运行切换至前台运行机率较大,对已压缩的显存页进行解压,以加快接收到该第一应用切换至前台运行的输入到显示该第一应用的时间。
本领域技术人员可以理解的是,采用何种压缩算法进行压缩,对应则采用同样的压缩算法进行解压缩。根据预存信息,可以对第一应用的已压缩的全部显存页进行解压预载,也可以仅对部分已压缩的显存页进行解压预载。由于各个压缩算法的解压缩速率不同,为了保证第一应用切换至前台运行的加载时间足够短,在一些实施例中,对于基于解压缩速率较慢的压缩算法进行解压缩的显存页具有较高的解压缩比例,对于解压缩速率较快的压缩算法压缩的显存页具有较低的解压缩比例。可选地,已压缩的第一显存页中至少30%基于第一压缩算法进行解压缩,已压缩的第二显存页中至少60%基于第二压缩算法进行解压缩,已压缩的第三显存页中至少80%基于第三压缩算法进行解压缩。
由于电子设备中设置的CPU具有运算能力,所以可以通过分配一定的CPU资源对第一应用占用的内存进行压缩处理。当然还可以设置独立于GPU和CPU的处理芯片,通过该独立设置的处理芯片对第一应用占用的内存进行压缩处理。在一实施例中,内存管理方法GPU压缩处理单元应用于电子设备,该电子设备包括GPU压缩处理单元,S101包括:
控制GPU压缩处理单元基于第一压缩算法压缩第一应用的第一显存页;
S102包括:
控制GPU压缩处理单元基于第二压缩算法压缩第一应用的第二显存页。
通过独立于CPU设置的GPU压缩处理单元进行显存页的压缩处理,从而避免占用CPU资源进行显存页的压缩处理,避免对显存页的压缩处理影响电子设备中操作系统、或除第一应用之外的其他应用的流畅度。
在另一些实施例中,电子设备包括CPU和GPU压缩处理单元,S101,包括:
在CPU的占用率小于或等于第一预设阈值的情况下,控制GPU压缩处理单元和CPU基于第一压缩算法压缩第一应用的第一显存页;
在CPU的占用率大于第一预设阈值的情况下,控制GPU压缩处理单元基于第一压缩算法压缩第一应用的第一显存页;
S102包括:
在CPU的占用率小于或等于第二预设阈值的情况下,控制GPU压缩处理单元和CPU基于第二压缩算法压缩第二应用的第二显存页;
在CPU的占用率大于第二预设阈值的情况下,控制GPU压缩处理单元基于第二压缩算法压缩第二应用的第二显存页。
请结合参阅图9,可以将与第一压缩算法相对应的算法标识和待压缩的第一显存页组成元数据,并将该元数据写入环形阵列中,GPU压缩处理单元和CPU可以同步从环形阵列中读取元数据,从而加快显存页的压缩速率。在CPU的占用率小于或等于第一预设阈值的情况下,CPU具有较多空闲的运算资源,即CPU用于进行第一显存页的压缩处理,对电子设备中操作系统、以及除第一应用的其他应用的运行的流畅度不会造成较大影响,可控制GPU压缩处理单元和CPU分别从环形阵列中读取元数据,并根据元数据携带的算法标识的第一显存页,基于第一压缩算法压缩第一显存页,以减小显存页压缩处理时间。在CPU的占用率大于第一预设阈值的情况下,CPU的负载过高,即CPU用于进行第一显存页的压缩处理,容易造成电子设备中操作系统、以及除第一应用的其他应用的运行卡顿,可仅控制GPU压缩处理单元从环形阵列中读取元数据,并根据元数据携带的算法标识和第一显存页,基于第一压缩算法压缩第一显存页。
在CPU的占用率小于或等于第一预设阈值的情况下,以及在CPU的占用率小于或等于第二预设阈值的情况下,控制GPU压缩处理单元和CPU一并压缩显存页,从而提高压缩显存页的效率。在CPU的占用率大于第一预设阈值的情况下,以及在CPU的占用率大于第二预设阈值的情况下,控制GPU压缩处理单元,避免对显存页的压缩处理影响电子设备中操作系统、或除第一应用之外的其他应用的流畅度。
在S802中同样可以通过CPU或GPU压缩处理单元进行显存页压缩,当然也可以通过CPU或GPU压缩处理单元对已压缩的显存页进行解压缩处理。在一实施例中,控制CPU和GPU压缩处理单元一并进行显存页解压缩处理,以提高第一应用从后台运行切换到前台运行的流程度。
在前述S602和S702中,接收到第一应用切换至前台运行的输入的情况下,第一应用需要尽快运行并显示,那么需要CPU和GPU压缩处理单元全力一进行显存页解压缩处理;在前述S802中,根据预存信息进行显存页加压缩处理,时效性要求不高,可以仅通过GPU压缩处理单元进行解压处理。
需要说明的是,本申请实施例提供的内存管理方法,执行主体可以为内存管理装置。本申请实施例中以内存管理装置执行内存管理方法为例,说明本申请实施例提供的内存管理装置。
图10是本申请另一实施例提供的内存管理装置的结构示意图,如图10所示,该内存管理装置可以包括:
压缩模块1001,用于在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
压缩模块1001,还用于在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
在本申请实施例中,可以根据第一应用的后台运行时长,对第一应用所占用的内存进行压缩处理,从而实现对第一应用所占用的内存进行有效回收,提高电子设备的可用内存,在一定程度上避免或减小由于可用内存较少导致的电子设备运行速度缓慢、卡顿等情况;通过设置具有不同压缩率的压缩算法分别对第一应用的第一显存页和第二显存页进行压缩,从而可实现对第一应用所占用的内存进行不同压缩处理,以提高第一应用所占用内存的整体压缩率,并降低压缩显存页的平均时间,降低压缩显存页对第一应用唤醒速度的影响
在一可选地示例中,压缩模块1001还用于在所述第一应用的后台运行时长大于或等于第二预设时长且小于第三预设时长的情况下,基于所述第二压缩算法压缩所述第一应用的第二显存页;
压缩模块1001还用于在所述第一应用的后台运行时长大于或等于第三预设时长的情况下,基于第三压缩算法压缩所述第一应用的第三显存页;
其中,所述第二压缩算法的压缩率小于所述第三压缩算法的压缩率;所述第一显存页为热页面,所述第二显存页和所述第三显存页均为冷页面,且所述第二显存页的未访问时长大于所述第三显存页的未访问时长。
在另一可选地示例中,该内存管理装置可以包括:
接收模块1002,用于接收第一输入,所述第一输入用于将所述第一应用由后台运行切换至前台运行;
压缩模块1001还用于响应于所述第一输入,在所述第一应用的后台运行时长大于所述第一预设时长且小于所述第二预设时长的情况下,取消压缩所述第一显存页中未压缩的显存页,对至少部分所述第一显存页中已压缩的显存页解压缩。
在另一可选地示例中,接收模块1002还用于接收第二输入,所述第二输入用于将所述第一应用由后台运行切换至前台运行;
压缩模块1001还用于响应于所述第二输入,在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,取消压缩所述第二显存页中未压缩的显存页,对至少部分所述第二显存页中已压缩的显存页解压缩。
在另一可选地示例中,压缩模块1001还用于在所述第二显存页中已压缩的显存页解压完成的情况下,对至少部分所述第一显存页解压缩。
在另一可选地示例中,该内存管理装置可以包括:
获取模块1003,用于获取所述第一应用的预测信息,所述预测信息包括所述第一应用从后台运行切换至前台运行的时间;
压缩模块1001还用于在所述预测信息满足预设条件的情况下,对至少部分已压缩的所述第一显存页解压缩,对至少部分已压缩的所述第二显存页解压缩,所述第一显存页的解压率小于所述第二显存页的解压率。
在另一可选地示例中,该内存管理装置应用于电子设备,所述电子设备包括GPU压缩处理单元,压缩模块1001还用于控制所述GPU压缩处理单元基于第一压缩算法压缩所述第一应用的第一显存页;
压缩模块1001还用于控制所述GPU压缩处理单元基于第二压缩算法压缩所述第一应用的第二显存页。
在另一可选地示例中,该内存管理装置应用于电子设备,所述电子设备包括CPU和GPU压缩处理单元,压缩模块1001还用于在所述CPU的占用率小于或等于第一预设阈值的情况下,控制所述GPU压缩处理单元和所述CPU基于所述第一压缩算法压缩所述第一应用的第一显存页;
压缩模块1001还用于在所述CPU的占用率小于或等于第二预设阈值的情况下,控制所述GPU压缩处理单元和所述CPU基于所述第二压缩算法压缩所述第二应用的第二显存页。
本申请实施例中的内存管理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的内存管理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为IOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的内存管理装置能够实现图1至图9的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,如图11所示,本申请实施例还提供一种电子设备100,包括处理器110,存储器119,存储在存储器119上并可在处理器110上运行的程序或指令,该程序或指令被处理器110执行时实现上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述的移动电子设备和非移动电子设备。
请结合参阅图12,图12为实现本申请实施例的一种电子设备的硬件结构示意图。该电子设备100包括但不限于:射频单元121、网络模块122、音频输出单元123、输入单元124、传感器125、显示单元126、用户输入单元127、接口单元128、存储器129、以及处理器120等部件。处理器120包括中央处理器CPU 1201和GPU压缩处理单元1202。
本领域技术人员可以理解,电子设备120还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器120逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图12中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器120,用于在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
处理器120还用于在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
在本申请实施例中,可以根据第一应用的后台运行时长,对第一应用所占用的内存进行压缩处理,从而实现对第一应用所占用的内存进行有效回收,提高电子设备的可用内存,在一定程度上避免或减小由于可用内存较少导致的电子设备运行速度缓慢、卡顿等情况;通过设置具有不同压缩率的压缩算法分别对第一应用的第一显存页和第二显存页进行压缩,从而可实现对第一应用所占用的内存进行不同压缩处理,以提高第一应用所占用内存的整体压缩率,并降低压缩显存页的平均时间,降低压缩显存页对第一应用唤醒速度的影响
可选地,处理器120还用于在所述第一应用的后台运行时长大于或等于第二预设时长且小于第三预设时长的情况下,基于所述第二压缩算法压缩所述第一应用的第二显存页;
处理器120还用于在所述第一应用的后台运行时长大于或等于第三预设时长的情况下,基于第三压缩算法压缩所述第一应用的第三显存页;
其中,所述第二压缩算法的压缩率小于所述第三压缩算法的压缩率;所述第一显存页为热页面,所述第二显存页和所述第三显存页均为冷页面,且所述第二显存页的未访问时长大于所述第三显存页的未访问时长。
可选地,该电子设备100可以包括:
用户输入单元127,用于接收第一输入,所述第一输入用于将所述第一应用由后台运行切换至前台运行;
处理器120还用于响应于所述第一输入,在所述第一应用的后台运行时长大于所述第一预设时长且小于所述第二预设时长的情况下,取消压缩所述第一显存页中未压缩的显存页,对至少部分所述第一显存页中已压缩的显存页解压缩。
可选地,用户输入单元127还用于接收第二输入,所述第二输入用于将所述第一应用由后台运行切换至前台运行;
处理器120还用于响应于所述第二输入,在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,取消压缩所述第二显存页中未压缩的显存页,对至少部分所述第二显存页中已压缩的显存页解压缩。
可选地,处理器120还用于在所述第二显存页中已压缩的显存页解压完成的情况下,对至少部分所述第一显存页解压缩。
在另一可选地示例中,该电子设备100可以包括:
处理器120还用于获取所述第一应用的预测信息,所述预测信息包括所述第一应用从后台运行切换至前台运行的时间;
处理器120还用于在所述预测信息满足预设条件的情况下,对至少部分已压缩的所述第一显存页解压缩,对至少部分已压缩的所述第二显存页解压缩,所述第一显存页的解压率小于所述第二显存页的解压率。
可选地,该内存管理装置应用于电子设备,所述电子设备包括GPU压缩处理单元,处理器120还用于控制所述GPU压缩处理单元基于第一压缩算法压缩所述第一应用的第一显存页;
处理器120还用于控制所述GPU压缩处理单元基于第二压缩算法压缩所述第一应用的第二显存页。
可选地,该处理器120包括CPU1201和GPU压缩处理单元1202,在所述CPU的占用率小于或等于第一预设阈值的情况下,CPU1201和GPU压缩处理单元1202用于基于所述第一压缩算法压缩所述第一应用的第一显存页;
在所述CPU的占用率小于或等于第二预设阈值的情况下,所述GPU压缩处理单元1202和所述CPU1201基于所述第二压缩算法压缩所述第二应用的第二显存页。
应理解的是,本申请实施例中,输入单元124可以包括图形处理器(GraphicsProcessing Unit,GPU)1241和麦克风1242,图形处理器1241对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元126可包括显示面板1261,可以采用液晶显示器、有机发光二极管等形式来配置显示面板1261。用户输入单元127包括触控面板1271以及其他输入设备1272中的至少一种。触控面板1271,也称为触摸屏。触控面板1271可包括触摸检测装置和触摸控制器两个部分。其他输入设备1272可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器129可用于存储软件程序以及各种数据。存储器129可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器129可以包括易失性存储器或非易失性存储器,或者,存储器129可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器129包括但不限于这些和任意其他适合类型的存储器。
处理器120可包括一个或多个处理单元;可选地,处理器120集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器120中。
本申请实施例还提供一种可读存储介质,可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,处理器为上述实施例中的电子设备中的处理器。可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述内存管理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (10)
1.一种内存管理方法,其特征在于,包括:
在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
2.根据权利要求1所述的方法,其特征在于,所述在所述第一应用的后台运行时长大于或等于第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页,包括:
在所述第一应用的后台运行时长大于或等于第二预设时长且小于第三预设时长的情况下,基于所述第二压缩算法压缩所述第一应用的第二显存页;
所述方法还包括:
在所述第一应用的大于或等于第三预设时长的情况下,基于第三压缩算法压缩所述第一应用的第三显存页;
其中,所述第二压缩算法的压缩率小于所述第三压缩算法的压缩率;
所述第一显存页为热页面,所述第二显存页和所述第三显存页均为冷页面,且所述第二显存页的未访问时长大于所述第三显存页的未访问时长。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一输入,所述第一输入用于将所述第一应用由后台运行切换至前台运行;
响应于所述第一输入,在所述第一应用的后台运行时长大于所述第一预设时长且小于所述第二预设时长的情况下,取消压缩所述第一显存页中未压缩的显存页,对至少部分所述第一显存页中已压缩的显存页解压缩。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二输入,所述第二输入用于将所述第一应用由后台运行切换至前台运行;
响应于所述第二输入,在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,取消压缩所述第二显存页中未压缩的显存页,对至少部分所述第二显存页中已压缩的显存页解压缩。
5.根据权利要求4所述的方法,其特征在于,所述取消压缩所述第二显存页中未压缩的显存页,对至少部分所述第二显存页中已压缩的显存页解压缩之后,所述方法还包括:
在所述第二显存页中已压缩的显存页解压完成的情况下,对至少部分所述第一显存页解压缩。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第一应用的预测信息,所述预测信息包括所述第一应用从后台运行切换至前台运行的时间;
在所述预测信息满足预设条件的情况下,对至少部分已压缩的所述第一显存页解压缩,对至少部分已压缩的所述第二显存页解压缩,所述第一显存页的解压率小于所述第二显存页的解压率。
7.根据权利要求1所述的方法,其特征在于,应用于电子设备,所述电子设备包括GPU压缩处理单元,所述基于第一压缩算法压缩所述第一应用的第一显存页,包括:
控制所述GPU压缩处理单元基于第一压缩算法压缩所述第一应用的第一显存页;
所述基于第二压缩算法压缩所述第一应用的第二显存页,包括:
控制所述GPU压缩处理单元基于第二压缩算法压缩所述第一应用的第二显存页。
8.根据权利要求1所述的方法,其特征在于,应用于电子设备,所述电子设备包括CPU和GPU压缩处理单元,所述基于第一压缩算法压缩所述第一应用的第一显存页,包括:
在所述CPU的占用率小于或等于第一预设阈值的情况下,控制所述GPU压缩处理单元和所述CPU基于所述第一压缩算法压缩所述第一应用的第一显存页;
所述基于第二压缩算法压缩所述第一应用的第二显存页,包括:
在所述CPU的占用率小于或等于第二预设阈值的情况下,控制所述GPU压缩处理单元和所述CPU基于所述第二压缩算法压缩所述第二应用的第二显存页。
9.一种内存管理装置,其特征在于,包括:
压缩模块,用于在第一应用的后台运行时长大于第一预设时长且小于第二预设时长的情况下,基于第一压缩算法压缩所述第一应用的第一显存页;
压缩模块还用于在所述第一应用的后台运行时长大于或等于所述第二预设时长的情况下,基于第二压缩算法压缩所述第一应用的第二显存页;
其中,所述第一压缩算法的压缩率小于所述第二压缩算法的压缩率;
所述第一显存页和所述第二显存页满足以下任意一项:
所述第一显存页为热页面,所述第二显存页为冷页面;
所述第一显存页和所述第二显存页均为冷页面,且所述第一显存页的未访问时长大于所述第二显存页的未访问时长。
10.一种电子设备,其特征在于,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-8中任一项所述的内存管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008538.8A CN115357389A (zh) | 2022-08-22 | 2022-08-22 | 内存管理方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211008538.8A CN115357389A (zh) | 2022-08-22 | 2022-08-22 | 内存管理方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115357389A true CN115357389A (zh) | 2022-11-18 |
Family
ID=84003041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211008538.8A Pending CN115357389A (zh) | 2022-08-22 | 2022-08-22 | 内存管理方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115357389A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794413A (zh) * | 2023-01-09 | 2023-03-14 | 荣耀终端有限公司 | 一种内存处理方法及相关装置 |
CN117593172A (zh) * | 2024-01-16 | 2024-02-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
-
2022
- 2022-08-22 CN CN202211008538.8A patent/CN115357389A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115794413A (zh) * | 2023-01-09 | 2023-03-14 | 荣耀终端有限公司 | 一种内存处理方法及相关装置 |
CN115794413B (zh) * | 2023-01-09 | 2024-05-14 | 荣耀终端有限公司 | 一种内存处理方法及相关装置 |
CN117593172A (zh) * | 2024-01-16 | 2024-02-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
CN117593172B (zh) * | 2024-01-16 | 2024-04-23 | 北京趋动智能科技有限公司 | 进程管理方法、装置、介质及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220221998A1 (en) | Memory management method, electronic device and non-transitory computer-readable medium | |
CN115357389A (zh) | 内存管理方法、装置及电子设备 | |
CN111352861B (zh) | 内存压缩方法、装置及电子设备 | |
WO2014051781A1 (en) | Techniques for dynamic physical memory partitioning | |
US9323542B2 (en) | Optimized cold boot for non-volatile memory | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
JP2017516123A (ja) | Dramメモリシステムにおいて省電力静止画像表示リフレッシュを提供するためのシステムおよび方法 | |
CN112711387A (zh) | 缓冲区容量的调整方法、装置、电子设备及可读存储介质 | |
CN115509953A (zh) | 内存回收方法及其装置 | |
CN114564315A (zh) | 内存分配方法、装置、电子设备及介质 | |
WO2014108743A1 (en) | A method and apparatus for using a cpu cache memory for non-cpu related tasks | |
US11182056B2 (en) | Application navigation | |
CN111444117B (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
KR102116984B1 (ko) | 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템 | |
US10678705B2 (en) | External paging and swapping for dynamic modules | |
CN113032290B (zh) | 闪存配置方法、装置、电子设备和存储介质 | |
CN115981565A (zh) | 存储器、数据存储方法及电子设备 | |
CN112965920A (zh) | 内存管理方法、装置、电子设备以及存储介质 | |
CN114070892A (zh) | 数据传输方法和装置 | |
US11442522B2 (en) | Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method | |
CN114595017B (zh) | 数据显示方法和装置、电子设备及计算机可读存储介质 | |
US20160320972A1 (en) | Adaptive compression-based paging | |
CN116737338A (zh) | 处理方法、装置、设备和存储介质 | |
CN117389645A (zh) | 应用运行方法、装置、电子设备和可读存储介质 | |
CN116541151A (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 |