CN111290848A - 一种内存优化方法、终端和计算机可读存储介质 - Google Patents

一种内存优化方法、终端和计算机可读存储介质 Download PDF

Info

Publication number
CN111290848A
CN111290848A CN201811490217.XA CN201811490217A CN111290848A CN 111290848 A CN111290848 A CN 111290848A CN 201811490217 A CN201811490217 A CN 201811490217A CN 111290848 A CN111290848 A CN 111290848A
Authority
CN
China
Prior art keywords
memory page
memory
compressed
data
stored
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
Application number
CN201811490217.XA
Other languages
English (en)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201811490217.XA priority Critical patent/CN111290848A/zh
Publication of CN111290848A publication Critical patent/CN111290848A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5016Allocation 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明实施例公开了一种内存优化方法,该方法可以包括:根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。本发明实施例还公开了一种终端和计算机可读存储介质,可以提高内存压缩技术的效率,可以提供更多可用的内存空间,同时也不会由于过多的内存交换影响系统性能。

Description

一种内存优化方法、终端和计算机可读存储介质
技术领域
本发明涉及电子技术领域,尤其涉及一种内存优化方法、终端和计算机可读存储介质。
背景技术
随着安卓Android智能终端愈来愈广泛的普及,愈来愈多的应用和游戏被适配到android智能系统中,但是功能日益强大的应用程序以及游戏也对android智能终端的硬件资源提出来更高的要求,比如更快的中央处理器(CPU,Central Processing Unit)和更大的内存容量等。内存容量的大小是影响智能终端性能的最关键的硬件因素之一,这在中低端android智能终端群中表现更为明显,随着应用程序和游戏对系统内存要求越来越高,终端系统中配置的内存大小,以及软件系统如何更合理的使用其相对紧缺的内存资源,会直接影响到终端用户的用户体验。
内存压缩技术(ZRAM)是目前被广泛应用在android智能系统中的一种技术。Linux内核会将系统可用的内存分成固定大小(大小为4096字节)内存页,以内存页为最小单元将内存提供给系统中的应用程序使用。ZRAM原理如图1所示,是将系统中暂时不会使用到,但是又不能直接丢弃的内存页的数据进行压缩存储,在需要使用的时候,首先进行解压,然后再将其数据提供给系统使用;通过使用CPU进行压缩和解压的过程,达到节省内存空间的目的,以方便为系统提供更多可用的内存。但是,ZRAM存在的问题在于,其具体使用的效率取决于内存页中所包含的数据的压缩率,即内存压缩技术所能为提供的有效的可用内存空间为特定内存页压缩前后的数据大小的差值。当系统经过长期使用后,系统内存中所存储的数据的可压缩性会比较低,即压缩率比较低。在这种情况下,内存压缩技术所能为系统节省的内存空间就会比较有限,尤其对于硬件物理内存配置比较少,CPU处理能力比较低的中低端智能手机,内存压缩技术ZRAM的作用和效率相对会比较有限。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种内存优化方法、终端和计算机可读存储介质,可以提高内存压缩技术的效率,可以提供更多可用的内存空间,同时也不会由于过多的内存交换影响系统性能。
为达到上述目的,本发明实施例的技术方案是这样实现的:
一种内存优化方法,包括:
根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;
按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;
当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
一种终端,包括:
处理单元,用于根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;
生成单元,用于按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;
所述处理单元,还用于当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上述内存优化方法的步骤。
本发明实施例所提供的内存优化方法、终端和计算机可读存储介质,根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。本发明实施例提供的内存优化方法、终端和计算机可读存储介质,可以使用终端系统的永久存储介质嵌入式多媒体卡作为内存压缩技术二级缓存,将经过内存压缩技术压缩后的数据选择性的存储到嵌入式多媒体卡,这样可以提高内存压缩的效率,提供了更多可用的内存空间,同时也不会由于过多的内存交换影响系统性能和嵌入式多媒体卡的使用寿命。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1为本发明实施例提供的内存压缩技术原理示意图;
图2为本发明实施例提供的内存交换技术原理示意图;
图3为本发明实施例提供的内存优化方法流程示意图;
图4为本发明实施例提供的内存中数据压缩存储示例图;
图5为本发明实施例提供的将内存中压缩数据存储到嵌入式多媒体卡示例图;
图6为本发明实施例提供的从嵌入式多媒体卡读取解压数据示例图;
图7为本发明实施例提供的终端结构示意图一;
图8为本发明实施例提供的终端结构示意图二。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本发明的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
内存交换技术是Linux系统中广泛使用的一种技术,其原理如图2所示,是将运行系统中暂时不用但又不能直接丢弃的内存页的数据交换存储到系统的永久存储介质中,比如硬盘中,从而将该内存页节省出来供系统的其他应用使用;当系统需要使用已经被交换存储到硬盘中的内存数据时会先从硬盘中将数据读入到内存中,然后再进行使用。内存交换技术的缺点主要包括两方面,一方面,先是智能手机使用嵌入式多媒体卡(eMMC,Embedded Multi Media Card)作为其永久存储介质中,eMMC具有相对硬盘来说比较短的写寿命周期,也就是说如果将内存交换技术直接使用在android智能手机中,会比较严重的影响到手机的使用寿命;另一方面,相对电脑的硬盘,eMMC的读写速度比较慢,较慢写速度意味着系统在进行内存页交换的时候需要等待更长的时间,这样会比较严重的影响系统的性能和用户体验。由于内存交换技术本身的缺点导致了在实际应用中其还没有使用在运行android系统的智能手机移动设备中。
本发明实施例提供的内存优化方法,将ZRAM中的压缩后的数据进行使用顺序排序,仅将一定比例的使用频率比较低的数据存储到eMMC中;而且存储到eMMC的数据是经过压缩后的,所以相对传统的内存交换技术,对eMMC的读写操作会显著的下降,从而减少对系统性能和eMMC寿命的影响。
本发明实施例提供的一种内存优化方法,如图3所示,该方法可以包括:
步骤101、根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页。
其中,所述已使用的内存页列表包括:至少一个第一内存页,所述至少一个第一内存页按照存储在所述至少一个第一内存页的数据的使用时间顺序排列,使用时间晚的数据存储的第一内存页排在使用时间早的数据存储的第一内存页前面。
本发明实施例提供的内存优化方法的执行主体为终端,即终端根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页,该终端为可以运行android系统的智能终端设备。
具体地,终端的内核将终端系统中可用的内存分成4096字节大小的内存页,以内存页为单元将内存提供给终端系统中运行的应用程序使用。终端系统中可能会运行多个应用程序,当应用程序被用户放在后台时,由于后台暂时不会被用户用到,所以其内存页存储的数据可以用来被压缩存储起来,将其内存页的数据暂时释放,并将暂时释放数据的内存页可以提供给前台进程使用。
其中,内核是终端操作系统最基本的部分。它是为众多应用程序提供对计算机硬件的安全访问的一部分软件,这种访问是有限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。
本发明实施例中,在终端系统运行多个应用程序时,该运行的多个应用程序的数据存储在至少一个第一内存页,该至少一个第一内存页的排列顺序是按照存储在所述至少一个第一内存页的数据的使用时间的排列顺序,使用时间晚的数据存储的内存页排在使用时间早的数据存储的内存页前面,也就是说,已使用的内存页列表中最前面的内存页即为当前正在使用的应用程序的数据存储内存页,将已使用的内存页列表中排在最后面的至少一个第一内存页存储的数据取出压缩存储在第二内存页,已使用的内存页列表中排在最后面的至少一个第一内存页存储的数据即放在后台暂时不会被用户用到应用程序的数据,由于后台暂时不会被用户用到,所以其内存页存储的数据可以被压缩存储放在第二内存页。
进一步地,所述方法还包括:终端将多个压缩存储的数据进行拼接存储在一个第二内存页。
示例性的,如图4所示,终端的内核会挑选暂时不用的内存页P1,使用内存压缩技术将其进行压缩并存储;压缩后的数据会小于4096字节,考虑到管理内存的方便性,内核会将多个压缩后的内存页数据进行拼接并且存放在一个独立的内存页中,如图4中的将P1、P4拼接并且存放在一个独立的内存页,将P3、P5、P6拼接并且存放在一个独立的内存页。
需要说明的是,目前终端内核中支持多种压缩算法,比如LZO(Lempel-Ziv-Oberhumer)压缩算法,LZ4压缩算法等,不同的压缩算法是终端CPU的处理能力有不同的要求,同时对数据的压缩率也会不同。终端配置多种压缩算法,内存压缩技术所使用的算法可以进行选择,可以根据终端系统的CPU处理能力,以及物理内存容量的大小选择不同的压缩算法,以达到压缩时间以及压缩率的平衡。
可选地,在所述将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页之前,包括:
获取运行程序要使用的存储容量值,当终端系统内存的可使用存储容量值小于所述运行程序要使用的存储容量值时,确定所述运行程序要使用的存储容量值与所述终端系统内存的可使用存储容量值的差值为待压缩的存储容量值;
其中,所述至少一个第一内存页存储的数据压缩前占用的存储容量值与所述至少一个第一内存页存储的数据压缩后占用的存储容量值的差值大于或等于所述待压缩的存储容量值。
具体地,在终端上运行多个运行程序时,可能会存在终端内存不够用的情况,这时需要通过内存压缩技术对处理终端后台暂时不用的程序的数据进行压缩存储,具体需要压缩多少内存空间大小需要根据当前运行程序需要使用的存储容量值确定。
示例性的,当前运行程序需要使用的存储容量值为100M,而终端系统内存的可使用存储容量值50M,则需要通过压缩后台暂时不用的程序的数据,通过数据压缩释放出至少50M的内存空间,即释放出至少50M的内存页。
步骤102、按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表。
其中,所述压缩内存页列表中包括:至少一个第二内存页,所述至少一个第二内存页按照存储在所述至少一个第二内存页的压缩数据的使用时间顺序排列,使用时间晚的压缩数据存储的第二内存页排在使用时间早的压缩数据存储的第二内存页前面。
具体地,当终端内核对后台进程暂时不用的内存页数据进行压缩后,由于用户的操作以及系统的调度,经过一定的时间,压缩后的数据有可能会被再次用到;此时系统会将压缩后的数据取出,进行解压并提供给应用程序使用;同时内核会根据系统需求,将被调度到后台的应用程序的内存数据进行压缩和存储,随着终端系统的运行,终端会根据当前不同程序的运行,进行数据的压缩存储,即会存在多个压缩数据和多个存储压缩数据的第二内存页,该多个第二内存页是按照存储在所述至少一个第二内存页的压缩数据的使用时间顺序排列,也就是说,随着终端系统的运行,系统中会存储一定比例的压缩后的数据,终端内核会根据这些数据的使用时间进行排序统计生成压缩内存页列表,如图5中的左图所示,排在内存页Page N后面的几个存储压缩数据的内存页。
步骤103、当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
具体地,当压缩内存页列表中第二内存页的数量大于预设阈值时,即终端系统中存储的压缩的数据达到一定数量后,将所述压缩内存页列表中排在最后面的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡,即系统会根据这些压缩的数据使用顺序,将较长时间未使用到或者使用频率比较低的数据存储到嵌入式多媒体卡eMMC分区中,并将这些压缩数据所使用的内存空间省出来并提供给系统中正在运行的应用程序使用,如图5所示,将排在最后的两个内存页中存储的压缩数据读出并写入eMMC分区中。
需要说明的是,内存中所存储的压缩数据的数量,被存储到eMMC中的压缩数据的数量,以及eMMC分区中所存储的压缩数据的数量可以根据终端系统的内存容量、系统运行状态等因素进行调整,以达到系统性能的最优。
进一步地,在所述将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡之后,还包括:
当使用所述嵌入式多媒体卡中存储的压缩数据时,从所述嵌入式多媒体卡读取目标压缩数据进行解压缩后使用。
具体地,当终端系统在运行过程中需要使用到已经被存储到eMMC中的压缩数据时,终端内核会先从eMMC中将数据读出并进行解压,然后提供给系统使用,如图6所示。
本发明实施例提供的内存优化方法,有效的解决了现有的内存优化技术存在的问题,其使用终端系统的永久存储介质eMMC作为内存压缩技术二级缓存,将经过内存压缩技术压缩后的数据选择性的存储到eMMC,这样可以提高内存压缩的效率,提供了更多可用的内存空间,同时也不会由于过多的内存交换影响系统性能和eMMC的使用寿命。
本发明实施例还提供一种终端20,如图7所示,终端20包括:
处理单元201,用于根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;
生成单元202,用于按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;
所述处理单元201,还用于当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
可选地,所述终端还包括:
确定单元203,用于获取运行程序要使用的存储容量值,当终端系统内存的可使用存储容量值小于所述运行程序要使用的存储容量值时,确定所述运行程序要使用的存储容量值与所述终端系统内存的可使用存储容量值的差值为待压缩的存储容量值;
其中,所述至少一个第一内存页存储的数据压缩前占用的存储容量值与所述至少一个第一内存页存储的数据压缩后占用的存储容量值的差值大于或等于所述待压缩的存储容量值。
可选地,所述已使用的内存页列表包括:至少一个第一内存页,所述至少一个第一内存页按照存储在所述至少一个第一内存页的数据的使用时间顺序排列,使用时间晚的数据存储的第一内存页排在使用时间早的数据存储的第一内存页前面;
所述处理单元201,还用于将所述已使用的内存页列表中排在最后面的至少一个第一内存页存储的数据取出压缩存储在第二内存页。
可选地,所述压缩内存页列表中包括:至少一个第二内存页,所述至少一个第二内存页按照存储在所述至少一个第二内存页的压缩数据的使用时间顺序排列,使用时间晚的压缩数据存储的第二内存页排在使用时间早的压缩数据存储的第二内存页前面;
所述处理单元201,还用于将所述压缩内存页列表中排在最后面的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
可选地,所述处理单元201,还用于当使用所述嵌入式多媒体卡中存储的压缩数据时,从所述嵌入式多媒体卡读取目标压缩数据进行解压缩后使用。
具体的,本发明实施例提供的终端的理解可以参考内存优化方法实施例的说明,本发明实施例在此不再赘述。
本发明实施例提供的终端,将部分ZRAM技术产生的压缩后的数据存储到eMMC中,从而为系统提供更多的可用内存;尤其是在系统长期使用,系统数据压缩比例比较低的情况下,可以提供更高的内存使用效率。
本发明实施例还提供一种终端30,如图8所示,所述终端30包括处理器301和存储器302;其中,
所述存储器302,用于存储能够在所述处理器上运行的计算机程序;
所述处理器301,用于运行所述计算机程序时执行如上所述内存优化方法的步骤。
可以理解,存储器302可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器302旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力,更具体地,内置有内存优化算法,即具有内存优化能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器301可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器302,处理器301读取存储器302中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,终端可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
在示例性实施例中,本发明实施例还提供了一种存储介质,具体可以为计算机可读存储介质,例如包括计算机程序的存储器,上述计算机程序可由终端的处理器执行,以完成前述方法所述步骤。计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、FlashMemory、磁表面存储器、光盘、或CD-ROM等存储器。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如上任一项所述的内存优化方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (10)

1.一种内存优化方法,其特征在于,包括:
根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;
按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;
当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
2.根据权利要求1所述的方法,其特征在于,在所述将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页之前,包括:
获取运行程序要使用的存储容量值,当终端系统内存的可使用存储容量值小于所述运行程序要使用的存储容量值时,确定所述运行程序要使用的存储容量值与所述终端系统内存的可使用存储容量值的差值为待压缩的存储容量值;
其中,所述至少一个第一内存页存储的数据压缩前占用的存储容量值与所述至少一个第一内存页存储的数据压缩后占用的存储容量值的差值大于或等于所述待压缩的存储容量值。
3.根据权利要求1所述的方法,其特征在于,
所述已使用的内存页列表包括:至少一个第一内存页,所述至少一个第一内存页按照存储在所述至少一个第一内存页的数据的使用时间顺序排列,使用时间晚的数据存储的第一内存页排在使用时间早的数据存储的第一内存页前面;
所述将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页,包括:
将所述已使用的内存页列表中排在最后面的至少一个第一内存页存储的数据取出压缩存储在第二内存页。
4.根据权利要求1所述的方法,其特征在于,
所述压缩内存页列表中包括:至少一个第二内存页,所述至少一个第二内存页按照存储在所述至少一个第二内存页的压缩数据的使用时间顺序排列,使用时间晚的压缩数据存储的第二内存页排在使用时间早的压缩数据存储的第二内存页前面;
所述将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡,包括:
将所述压缩内存页列表中排在最后面的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡之后,还包括:
当使用所述嵌入式多媒体卡中存储的压缩数据时,从所述嵌入式多媒体卡读取目标压缩数据进行解压缩后使用。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
将多个压缩存储的数据进行拼接存储在一个第二内存页。
7.一种终端,其特征在于,包括:
处理单元,用于根据终端系统内存中已使用的内存页列表中存储数据的使用顺序,将所述已使用的内存页列表中至少一个第一内存页存储的数据取出压缩存储在第二内存页;
生成单元,用于按照至少一个压缩存储的数据的使用顺序将存储所述至少一个压缩存储的数据的第二内存页排列生成压缩内存页列表;
所述处理单元,还用于当所述压缩内存页列表中第二内存页的数量大于预设阈值时,将所述压缩内存页列表中的至少一个第二内存页存储的压缩数据取出存储在嵌入式多媒体卡。
8.根据权利要求7所述的终端,其特征在于,所述终端还包括:
确定单元,用于获取运行程序要使用的存储容量值,当终端系统内存的可使用存储容量值小于所述运行程序要使用的存储容量值时,确定所述运行程序要使用的存储容量值与所述终端系统内存的可使用存储容量值的差值为待压缩的存储容量值;
其中,所述至少一个第一内存页存储的数据压缩前占用的存储容量值与所述至少一个第一内存页存储的数据压缩后占用的存储容量值的差值大于或等于所述待压缩的存储容量值。
9.根据权利要求7或8所述的终端,其特征在于,所述处理单元,还用于当使用所述嵌入式多媒体卡中存储的压缩数据时,从所述嵌入式多媒体卡读取目标压缩数据进行解压缩后使用。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1至6中任一项所述的内存优化方法的步骤。
CN201811490217.XA 2018-12-06 2018-12-06 一种内存优化方法、终端和计算机可读存储介质 Pending CN111290848A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811490217.XA CN111290848A (zh) 2018-12-06 2018-12-06 一种内存优化方法、终端和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811490217.XA CN111290848A (zh) 2018-12-06 2018-12-06 一种内存优化方法、终端和计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN111290848A true CN111290848A (zh) 2020-06-16

Family

ID=71029750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811490217.XA Pending CN111290848A (zh) 2018-12-06 2018-12-06 一种内存优化方法、终端和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111290848A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880928A (zh) * 2020-07-06 2020-11-03 Oppo广东移动通信有限公司 选择进程进行释放的方法、终端设备
CN114741205A (zh) * 2022-06-02 2022-07-12 荣耀终端有限公司 一种匿名页回收方法及电子设备
CN116243850A (zh) * 2021-06-08 2023-06-09 荣耀终端有限公司 一种存储器管理方法及电子设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111880928A (zh) * 2020-07-06 2020-11-03 Oppo广东移动通信有限公司 选择进程进行释放的方法、终端设备
CN111880928B (zh) * 2020-07-06 2024-04-19 Oppo广东移动通信有限公司 选择进程进行释放的方法、终端设备
CN116243850A (zh) * 2021-06-08 2023-06-09 荣耀终端有限公司 一种存储器管理方法及电子设备
CN116243850B (zh) * 2021-06-08 2024-05-28 荣耀终端有限公司 一种存储器管理方法及电子设备
CN114741205A (zh) * 2022-06-02 2022-07-12 荣耀终端有限公司 一种匿名页回收方法及电子设备

Similar Documents

Publication Publication Date Title
CN102479098B (zh) 使用快照图像的引导设备和方法
US10459840B2 (en) Methods and devices for reducing compressed page loading time on page fault
CN111290848A (zh) 一种内存优化方法、终端和计算机可读存储介质
CN110377226B (zh) 基于存储引擎bluestore的压缩方法、装置及存储介质
US9977598B2 (en) Electronic device and a method for managing memory space thereof
CN105204781A (zh) 压缩方法、装置和设备
CN108874688B (zh) 一种报文数据缓存方法及装置
CN104281528A (zh) 一种数据存储方法及装置
CN103197934A (zh) 多媒体装置的启动方法及多媒体装置
US10482021B2 (en) Priority-based storage and access of compressed memory lines in memory in a processor-based system
CN101981551A (zh) 用于高速缓存利用的设备和方法
US20140258247A1 (en) Electronic apparatus for data access and data access method therefor
CN103229150B (zh) 数据控制方法及系统
CN111625531B (zh) 基于可编程装置的合并装置、数据合并方法及数据库系统
US20090138655A1 (en) Method and terminal for demand paging at least one of code and data requiring real-time response
US9471584B2 (en) Demand paging method for mobile terminal, controller and mobile terminal
CN116841458A (zh) 存储器读写控制方法、系统、终端及存储介质
CN112256206B (zh) 一种io处理方法及装置
KR20080023846A (ko) 데이타 압축 관리장치
CN101482825A (zh) 自启动模块及其实现方法,单板和单板自启动方法
CN111625254A (zh) 文件处理方法、装置、终端及存储介质
JP2010277495A (ja) 圧縮記録装置および圧縮記録方法
CN110929478A (zh) 一种匿名网页压缩的方法、装置及系统
CN115509635A (zh) 数据处理方法及装置
CN115220644A (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