CN104503740A - 内存管理方法和装置 - Google Patents
内存管理方法和装置 Download PDFInfo
- Publication number
- CN104503740A CN104503740A CN201410714206.0A CN201410714206A CN104503740A CN 104503740 A CN104503740 A CN 104503740A CN 201410714206 A CN201410714206 A CN 201410714206A CN 104503740 A CN104503740 A CN 104503740A
- Authority
- CN
- China
- Prior art keywords
- internal storage
- application process
- memory
- storage data
- background application
- 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
Abstract
本公开是关于一种内存管理方法和装置,属于计算机技术领域。所述方法包括:确定正在后台运行的应用所对应的后台应用进程;将后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;将压缩后的内存数据从主存转移至虚拟内存中。本公开通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
Description
技术领域
本公开涉及计算机技术领域,特别涉及一种内存管理方法和装置。
背景技术
内存是电子设备的一个重要组成部件,电子设备中所有程序的运行都是在内存中进行的,内存的性能对电子设备的整体性能而言至关重要。
由于系统的内存资源是有限的,当系统内运行的进程较多时,会出现内存资源不足的情况。相关技术提供了一套内存管理机制,以应对上述内存资源不足的情况。当内存资源不足时,通过选择一个或多个正在运行的进程并将其杀掉,以释放内存资源。
公开人在实现本公开的过程中,发现上述方式至少存在如下缺陷:系统在选择需要杀掉的进程时,通常选择一些内存资源占用比较大的进程,然而这很有可能将一些有用的进程杀掉,导致影响设备的正常使用。
发明内容
为了解决上述技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题,本公开实施例提供了一种内存管理方法和装置。所述技术方案如下:
根据本公开实施例的第一方面,提供了一种内存管理方法,所述方法包括:
确定正在后台运行的应用所对应的后台应用进程;
将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
将所述压缩后的内存数据从主存转移至虚拟内存中。
可选的,所述确定正在后台运行的应用所对应的后台应用进程,包括:
对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合;
其中,所述系统进程集合包括系统关键服务所对应的系统进程,所述前台进程集合包括正在前台运行的应用所对应的前台应用进程,所述后台进程集合包括所述正在后台运行的应用所对应的后台应用进程。
可选的,所述方法还包括:
记录所述后台应用进程所占用的内存资源总量;
当所述后台应用进程所占用的内存资源总量达到预设门限值时,执行所述将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据的步骤。
可选的,所述方法还包括:
当所述后台应用进程被调用至前台运行时,将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中。
可选的,所述将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中,包括:
将所述后台应用进程对应的压缩后的内存数据进行解压缩得到所述后台应用进程对应的内存数据;
将所述后台应用进程对应的内存数据从所述虚拟内存转移至所述主存中。
根据本公开实施例的第二方面,提供了一种内存管理装置,所述装置包括:
进程确定模块,被配置为确定正在后台运行的应用所对应的后台应用进程;
数据压缩模块,被配置为将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
数据转移模块,被配置为将所述压缩后的内存数据从主存转移至虚拟内存中。
可选的,所述进程确定模块,还被配置为对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合;
其中,所述系统进程集合包括系统关键服务所对应的系统进程,所述前台进程集合包括正在前台运行的应用所对应的前台应用进程,所述后台进程集合包括所述正在后台运行的应用所对应的后台应用进程。
可选的,所述装置还包括:
总量记录模块,被配置为记录所述后台应用进程所占用的内存资源总量;
所述数据压缩模块,还被配置为当所述后台应用进程所占用的内存资源总量达到预设门限值时,将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
可选的,所述装置还包括:
数据调入模块,被配置为当所述后台应用进程被调用至前台运行时,将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中。
可选的,所述数据调入模块,包括:数据解压子模块和数据转移子模块;
所述数据解压子模块,被配置为将所述后台应用进程对应的压缩后的内存数据进行解压缩得到所述后台应用进程对应的内存数据;
所述数据转移子模块,被配置为将所述后台应用进程对应的内存数据从所述虚拟内存转移至所述主存中。
根据本公开实施例的第三方面,提供了一种内存管理装置,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
确定正在后台运行的应用所对应的后台应用进程;
将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
将所述压缩后的内存数据从主存转移至虚拟内存中。
本公开实施例提供的技术方案可以包括以下有益效果:
通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种内存管理方法的流程图;
图2是根据另一示例性实施例示出的一种内存管理方法的流程图;
图3是根据一示例性实施例示出的一种内存管理装置的框图;
图4是根据另一示例性实施例示出的一种内存管理装置的框图;
图5是根据一示例性实施例示出的一种装置的框图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种内存管理方法的流程图,本实施例以该内存管理方法应用于诸如手机、平板电脑、多媒体播放器之类的移动终端中进行举例说明。该内存管理方法可以包括如下几个步骤:
在步骤102中,确定正在后台运行的应用所对应的后台应用进程。
在步骤104中,将后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
在步骤106中,将压缩后的内存数据从主存转移至虚拟内存中。
综上所述,本实施例提供的内存管理方法,通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
图2是根据另一示例性实施例示出的一种内存管理方法的流程图,本实施例以该内存管理方法应用于诸如手机、平板电脑、多媒体播放器之类的移动终端中进行举例说明。该内存管理方法可以包括如下几个步骤:
在步骤201中,确定正在后台运行的应用所对应的后台应用进程。
移动终端中运行的进程可分为系统进程和应用进程。系统进程是指用于完成操作系统的各种功能的进程,系统进程在操作系统发布的时候即可确定。应用进程是指由用户启动的进程,这些进程通常是用户安装于移动终端中的应用程序所对应的进程。其中,应用进程还可分为前台进程和后台进程。前台进程是指用户正在交互使用的应用程序所对应的进程。后台进程是指用户并不在交互使用的应用程序所对应的进程。
在一种可能的实施方式中,移动终端对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合。其中,系统进程集合包括系统关键服务所对应的系统进程,前台进程集合包括正在前台运行的应用所对应的前台应用进程,后台进程集合包括正在后台运行的应用所对应的后台应用进程。在上述3个进程集合中,系统进程集合是一个静态集合,该进程集合内的进程在操作系统发布的时候即可确定;前台进程集合和后台进程集合均为动态集合,这两个进程集合内的进程会随着用户的操作而发生改变。
上述进程集合可通过创建3个cgroup来实现。cgroup以分组的形式对进程使用系统资源的行为进行管理和控制。移动终端可通过cgroup对所有的进程进行分组,再对各个分组进行整体资源的分配和控制。在本实施例中,通过创建3个cgroup将系统内的所有进程分为系统进程集合、前台进程集合和后台进程集合三类,并通过cgroup分别对各个进程集合中的进程所占用的内存资源进行计数。
另外,操作系统在确定各个进程所对应的进程集合时,可监听用户与应用程序之间的交互操作事件,将用户正在交互使用的应用程序所对应的应用进程归类至前台进程集合中。前台进程集合中包含前台应用进程所对应的进程号。在正在运行的应用进程中,除前台应用进程之外的应用进程即为后台应用进程,将后台应用进程归类至后台进程集合中。后台进程集合中包含后台应用进程所对应的进程号。系统进程集合中包括系统进程所对应的进程号。
另外,应用进程会随着用户的操作在前台进程集合和后台进程集合中进行切换。当前台应用进程被切换至后台运行时,移动终端将前台应用进程所对应的进程号从前台进程集合中去除,并添加至后台进程集合中。当后台应用进程被切换至前台运行时,移动终端将后台应用进程所对应的进程号从后台进程集合中去除,并添加至前台进程集合中。
移动终端读取后台进程集合中的进程号,该进程号对应的应用进程即为后台应用进程。
在步骤202中,记录后台应用进程所占用的内存资源总量。
后台进程集合所对应的cgroup对该进程集合中的所有后台应用进程所占用的内存资源进程计数,确定后台应用进程所占用的内存资源总量。
在步骤203中,当后台应用进程所占用的内存资源总量达到预设门限值时,将后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
在本实施例提供的内存管理方法中,提供了一种内存压缩机制,当后台应用进程所占用的内存资源总量达到预设门限值时,触发内存压缩。移动终端将后台应用进程对应的内存数据进行压缩,以减小这些内存数据的内存资源占用。数据压缩算法可采用操作系统内核默认的压缩算法,通常能够达到1:4的平均压缩率。
需要说明的一点是:移动终端在创建3个进程集合分别对应的3个cgroup后,可为每个cgroup设置不同的使用倾向参数。使用倾向参数用于反映对cgroup内的进程对应的内存数据进行压缩的倾向。使用倾向参数以swappiness表示,swappiness的取值区间为0至100。cgroup对应的swappiness越大,表示尽量对该进程集合中的进程对应的内存数据进行压缩;反之,cgroup对应的swappiness越小,表示尽量不对该进程集合中的进程对应的内存数据进行压缩。在一种可能的实施方式中,将系统进程集合对应的cgroup的swappiness设置为0,将前台进程集合对应的cgroup的swappiness也设置为0,而将后台进程集合对应的cgroup的swappiness也设置为100。移动终端便可根据不同swappiness的取值,选择需要进行内存压缩的cgroup。
另外,当后台应用进程所占用的内存资源总量未达到预设门限值时,说明内存资源占用较少,移动终端可不进行内存压缩。
在步骤204中,将压缩后的内存数据从主存转移至虚拟内存中。
其中,主存是指移动终端的物理内存的全部或者部分。
当主存为物理内存的全部时,虚拟内存可以是外部存储器中的一个分区。该外部存储器通常为闪存或者硬盘。移动终端将压缩后的内存数据转移至外部的虚拟内存中进行存储,可以腾出内存空间。
当主存为物理内存的一部分(比如一个分区)时,虚拟内存可以是物理内存的一个分区。此时,虚拟内存和主存同属于物理内存,虚拟内存为物理内存的一个分区,主存为物理内存的另一分区。相比于将内存数据直接存储在物理内存中,由于在将内存数据转移至物理内存的一个分区(也即虚拟内存)进行存储之前,对内存数据进行了压缩,所以同样可以达到节约内存空间的效果。
可选的,当移动终端为安卓Android操作系统的移动终端,且虚拟内存为物理内存的一个分区时,虚拟内存即为虚拟Zram设备,移动终端将压缩后的内存数据从主存转移至虚拟Zram设备中。
本实施例提供的内存管理方法,通过将后台应用进程对应的内存数据进行压缩,而前台应用进程对应的内存数据以及系统进程对应的内存数据不进行压缩,在保证前台应用和系统的正常运行的前提下,充分减小了后台应用进程的内存资源占用,使得移动终端能够支持更多应用在后台运行。
在步骤205中,当后台应用进程被调用至前台运行时,将后台应用进程对应的内存数据从虚拟内存调入主存中。
当后台应用进程被调用至前台运行时,移动终端通过缺页中断将后台应用进程对应的内存数据从虚拟内存调入主存中。当后台应用进程被调用至前台运行时,由于操作系统所要读取的内存数据不在主存中,操作系统需要将其调入主存中再进行读取。此时,操作系统通过缺页中断从虚拟内存中将需要读取的内存数据调入主存中。
需要说明的一点是:相比于从外部的虚拟内存中将数据调入主存,当虚拟内存为物理内存的一个分区时,从该分区中将数据调入主存的速度会快很多。
另外,本步骤可以包括如下两个子步骤:
第一,将后台应用进程对应的压缩后的内存数据进行解压缩得到后台应用进程对应的内存数据;
第二,将后台应用进程对应的内存数据从虚拟内存转移至主存中。
由于虚拟内存中的内存数据是压缩存放的,因此,在将这些压缩后的内存数据从虚拟内存调入主存的过程中,移动终端需要对这些压缩后的内存数据进行解压缩。
另外,移动终端在将压缩后的内存数据存入虚拟内存时,可将后台应用进程的进程号和压缩后的内存数据对应存储,不同的进程号对应于不同的压缩后的内存数据。之后,移动终端便可根据被调用至前台运行的后台应用进程的进程号查询获取对应的压缩后的内存数据,然后对其进行解压缩。
综上所述,本实施例提供的内存管理方法,通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
另外,通过对后台应用进程对应的内存数据进行压缩,既可以减小后台应用进程的内存资源占用,同时使得移动终端能够支持更多的应用在后台运行。另外,还通过设定预设门限值,当后台应用进程所占用的内存资源未达到预设门限值时,不进行内存压缩,保证内存资源充足时后台应用进程被调用的响应速度。
下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
图3是根据一示例性实施例示出的一种内存管理装置的框图,该内存管理装置可以通过软件、硬件或者两者的结合实现成为移动终端的部分或者全部。该内存管理装置可以包括:进程确定模块310、数据压缩模块320和数据转移模块330。
进程确定模块310,被配置为确定正在后台运行的应用所对应的后台应用进程。
数据压缩模块320,被配置为将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
数据转移模块330,被配置为将所述压缩后的内存数据从主存转移至虚拟内存中。
综上所述,本实施例提供的内存管理装置,通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
图4是根据另一示例性实施例示出的一种内存管理装置的框图,该内存管理装置可以通过软件、硬件或者两者的结合实现成为移动终端的部分或者全部。该内存管理装置可以包括:进程确定模块310、数据压缩模块320和数据转移模块330。
进程确定模块310,被配置为确定正在后台运行的应用所对应的后台应用进程。
在一种可能的实施方式中,所述进程确定模块310,还被配置为对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合;
其中,所述系统进程集合包括系统关键服务所对应的系统进程,所述前台进程集合包括正在前台运行的应用所对应的前台应用进程,所述后台进程集合包括所述正在后台运行的应用所对应的后台应用进程。
数据压缩模块320,被配置为将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
数据转移模块330,被配置为将所述压缩后的内存数据从主存转移至虚拟内存中。
可选的,所述装置还包括:总量记录模块312。
总量记录模块312,被配置为记录所述后台应用进程所占用的内存资源总量。
所述数据压缩模块320,还被配置为当所述后台应用进程所占用的内存资源总量达到预设门限值时,将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
可选的,所述装置还包括:数据调入模块332。
数据调入模块332,被配置为当所述后台应用进程被调用至前台运行时,将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中。
在一种可能的实施方式中,所述数据调入模块332,包括:数据解压子模块332a和数据转移子模块332b。
所述数据解压子模块332a,被配置为将所述后台应用进程对应的压缩后的内存数据进行解压缩得到所述后台应用进程对应的内存数据。
所述数据转移子模块332b,被配置为将所述后台应用进程对应的内存数据从所述虚拟内存转移至所述主存中。
综上所述,本实施例提供的内存管理装置,通过将后台应用进程对应的内存数据进行压缩,并将压缩后的内存数据从主存转移至虚拟内存中;解决了相关技术在释放内存资源时,将一些有用的进程杀掉,而导致影响设备的正常使用的问题;在保证有用的进程正常运行的基础上,将系统和用户均不使用的后台应用进程压缩存储,既达到了节省内存资源的目的,同时保证了设备的正常使用。
另外,通过对后台应用进程对应的内存数据进行压缩,既可以减小后台应用进程的内存资源占用,同时使得移动终端能够支持更多的应用在后台运行。另外,还通过设定预设门限值,当后台应用进程所占用的内存资源未达到预设门限值时,不进行内存压缩,保证后台应用进程被调用时的响应速度。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种用于管理内存的装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,输入/输出(I/O)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个麦克风(MIC),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到装置500的打开/关闭状态,组件的相对定位,例如所述组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置500的处理器执行时,使得装置500能够执行如上述图1或图2所示实施例提供的内存管理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (11)
1.一种内存管理方法,其特征在于,所述方法包括:
确定正在后台运行的应用所对应的后台应用进程;
将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
将所述压缩后的内存数据从主存转移至虚拟内存中。
2.根据权利要求1所述的方法,其特征在于,所述确定正在后台运行的应用所对应的后台应用进程,包括:
对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合;
其中,所述系统进程集合包括系统关键服务所对应的系统进程,所述前台进程集合包括正在前台运行的应用所对应的前台应用进程,所述后台进程集合包括所述正在后台运行的应用所对应的后台应用进程。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录所述后台应用进程所占用的内存资源总量;
当所述后台应用进程所占用的内存资源总量达到预设门限值时,执行所述将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据的步骤。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述后台应用进程被调用至前台运行时,将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中。
5.根据权利要求4所述的方法,其特征在于,所述将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中,包括:
将所述后台应用进程对应的压缩后的内存数据进行解压缩得到所述后台应用进程对应的内存数据;
将所述后台应用进程对应的内存数据从所述虚拟内存转移至所述主存中。
6.一种内存管理装置,其特征在于,所述装置包括:
进程确定模块,被配置为确定正在后台运行的应用所对应的后台应用进程;
数据压缩模块,被配置为将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
数据转移模块,被配置为将所述压缩后的内存数据从主存转移至虚拟内存中。
7.根据权利要求6所述的装置,其特征在于,
所述进程确定模块,还被配置为对系统内的进程进行分类,得到系统进程集合、前台进程集合和后台进程集合;
其中,所述系统进程集合包括系统关键服务所对应的系统进程,所述前台进程集合包括正在前台运行的应用所对应的前台应用进程,所述后台进程集合包括所述正在后台运行的应用所对应的后台应用进程。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
总量记录模块,被配置为记录所述后台应用进程所占用的内存资源总量;
所述数据压缩模块,还被配置为当所述后台应用进程所占用的内存资源总量达到预设门限值时,将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
数据调入模块,被配置为当所述后台应用进程被调用至前台运行时,将所述后台应用进程对应的内存数据从所述虚拟内存调入所述主存中。
10.根据权利要求9所述的装置,其特征在于,所述数据调入模块,包括:数据解压子模块和数据转移子模块;
所述数据解压子模块,被配置为将所述后台应用进程对应的压缩后的内存数据进行解压缩得到所述后台应用进程对应的内存数据;
所述数据转移子模块,被配置为将所述后台应用进程对应的内存数据从所述虚拟内存转移至所述主存中。
11.一种内存管理装置,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为:
确定正在后台运行的应用所对应的后台应用进程;
将所述后台应用进程对应的内存数据进行压缩得到压缩后的内存数据;
将所述压缩后的内存数据从主存转移至虚拟内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410714206.0A CN104503740A (zh) | 2014-12-01 | 2014-12-01 | 内存管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410714206.0A CN104503740A (zh) | 2014-12-01 | 2014-12-01 | 内存管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104503740A true CN104503740A (zh) | 2015-04-08 |
Family
ID=52945141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410714206.0A Pending CN104503740A (zh) | 2014-12-01 | 2014-12-01 | 内存管理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503740A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335099A (zh) * | 2015-09-25 | 2016-02-17 | 深圳市金立通信设备有限公司 | 一种内存清理方法及终端 |
CN105404551A (zh) * | 2015-12-11 | 2016-03-16 | Tcl移动通信科技(宁波)有限公司 | 移动终端的应用前后台切换处理方法、系统及移动终端 |
CN105740071A (zh) * | 2016-03-17 | 2016-07-06 | 深圳市九洲电器有限公司 | 一种安卓系统运行速度管理方法及系统 |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN106803860A (zh) * | 2017-01-23 | 2017-06-06 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106844032A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN107193653A (zh) * | 2017-04-28 | 2017-09-22 | 北京小米移动软件有限公司 | 带宽资源分配方法、装置及存储介质 |
CN107436822A (zh) * | 2016-05-27 | 2017-12-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种冻结应用的方法以及装置 |
WO2018000128A1 (en) * | 2016-06-27 | 2018-01-04 | Intel Corporation | Dynamic configuration of compressed virtual memory |
CN107608782A (zh) * | 2016-07-11 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 内存压缩的方法及装置、操作系统、电子设备 |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
WO2019071610A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 一种压缩和解压处理器所占内存的方法及装置 |
CN110175075A (zh) * | 2019-05-21 | 2019-08-27 | 深圳市君和睿通科技股份有限公司 | 安卓系统内存优化方法及装置 |
CN111124678A (zh) * | 2019-12-18 | 2020-05-08 | 青岛海尔科技有限公司 | 内存调度处理方法及装置 |
CN112231090A (zh) * | 2020-11-04 | 2021-01-15 | Oppo广东移动通信有限公司 | 应用进程管理方法、装置及终端设备 |
CN112338919A (zh) * | 2020-10-30 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112463350A (zh) * | 2019-09-09 | 2021-03-09 | 珠海市魅族科技有限公司 | 后台应用优化方法及装置、存储介质及电子装置 |
WO2021218370A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种内存管理方法及终端设备 |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
WO2023005783A1 (zh) * | 2021-07-26 | 2023-02-02 | 华为技术有限公司 | 数据处理方法及电子设备 |
CN116244067B (zh) * | 2021-06-10 | 2024-05-03 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004699A (zh) * | 2010-11-25 | 2011-04-06 | 康佳集团股份有限公司 | 一种基于mtk平台的内存共享方法 |
CN102122959A (zh) * | 2011-03-29 | 2011-07-13 | 西安交通大学 | 提高计算机主存可靠性的数据压缩装置及其方法 |
CN102685729A (zh) * | 2011-02-14 | 2012-09-19 | 微软公司 | 用于移动设备上的应用的后台传输服务 |
CN104125458A (zh) * | 2013-04-27 | 2014-10-29 | 展讯通信(上海)有限公司 | 内存数据无损压缩方法及装置 |
-
2014
- 2014-12-01 CN CN201410714206.0A patent/CN104503740A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102004699A (zh) * | 2010-11-25 | 2011-04-06 | 康佳集团股份有限公司 | 一种基于mtk平台的内存共享方法 |
CN102685729A (zh) * | 2011-02-14 | 2012-09-19 | 微软公司 | 用于移动设备上的应用的后台传输服务 |
CN102122959A (zh) * | 2011-03-29 | 2011-07-13 | 西安交通大学 | 提高计算机主存可靠性的数据压缩装置及其方法 |
CN104125458A (zh) * | 2013-04-27 | 2014-10-29 | 展讯通信(上海)有限公司 | 内存数据无损压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
YAHALA: ""[经验] ZRAM SWAP内存管理讲解"", 《HTTP://WWW.MIUI.COM/THREAD-1858807-1-1.HTML》 * |
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335099A (zh) * | 2015-09-25 | 2016-02-17 | 深圳市金立通信设备有限公司 | 一种内存清理方法及终端 |
CN105404551A (zh) * | 2015-12-11 | 2016-03-16 | Tcl移动通信科技(宁波)有限公司 | 移动终端的应用前后台切换处理方法、系统及移动终端 |
CN105740071A (zh) * | 2016-03-17 | 2016-07-06 | 深圳市九洲电器有限公司 | 一种安卓系统运行速度管理方法及系统 |
CN105740071B (zh) * | 2016-03-17 | 2018-12-04 | 深圳市九洲电器有限公司 | 一种安卓系统运行速度管理方法及系统 |
CN107436822A (zh) * | 2016-05-27 | 2017-12-05 | 宇龙计算机通信科技(深圳)有限公司 | 一种冻结应用的方法以及装置 |
US10635337B2 (en) | 2016-06-27 | 2020-04-28 | Intel Corporation | Dynamic configuration of compressed virtual memory |
WO2018000128A1 (en) * | 2016-06-27 | 2018-01-04 | Intel Corporation | Dynamic configuration of compressed virtual memory |
CN109313604B (zh) * | 2016-06-27 | 2023-05-23 | 英特尔公司 | 用于压缩虚拟存储器的动态配置的计算系统、装置和方法 |
CN109313604A (zh) * | 2016-06-27 | 2019-02-05 | 英特尔公司 | 压缩虚拟存储器的动态配置 |
CN107608782A (zh) * | 2016-07-11 | 2018-01-19 | 阿里巴巴集团控股有限公司 | 内存压缩的方法及装置、操作系统、电子设备 |
CN107608782B (zh) * | 2016-07-11 | 2021-01-29 | 斑马智行网络(香港)有限公司 | 内存压缩的方法及装置、操作系统、电子设备 |
WO2018059027A1 (zh) * | 2016-09-29 | 2018-04-05 | 华为技术有限公司 | 一种内存回收方法及终端 |
US11822805B2 (en) | 2016-09-29 | 2023-11-21 | Huawei Technologies Co., Ltd. | Method and terminal for reclaiming memory after freezing program |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN106803860A (zh) * | 2017-01-23 | 2017-06-06 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106844032A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN106803860B (zh) * | 2017-01-23 | 2020-12-29 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN107193653A (zh) * | 2017-04-28 | 2017-09-22 | 北京小米移动软件有限公司 | 带宽资源分配方法、装置及存储介质 |
CN107193653B (zh) * | 2017-04-28 | 2020-12-29 | 北京小米移动软件有限公司 | 带宽资源分配方法、装置及存储介质 |
WO2019071610A1 (zh) * | 2017-10-13 | 2019-04-18 | 华为技术有限公司 | 一种压缩和解压处理器所占内存的方法及装置 |
CN110023906A (zh) * | 2017-10-13 | 2019-07-16 | 华为技术有限公司 | 一种压缩和解压处理器所占内存的方法及装置 |
CN108932163A (zh) * | 2018-06-15 | 2018-12-04 | 奇酷互联网络科技(深圳)有限公司 | 内存管理方法、装置、可读存储介质及终端 |
CN110175075A (zh) * | 2019-05-21 | 2019-08-27 | 深圳市君和睿通科技股份有限公司 | 安卓系统内存优化方法及装置 |
CN112463350A (zh) * | 2019-09-09 | 2021-03-09 | 珠海市魅族科技有限公司 | 后台应用优化方法及装置、存储介质及电子装置 |
CN111124678A (zh) * | 2019-12-18 | 2020-05-08 | 青岛海尔科技有限公司 | 内存调度处理方法及装置 |
WO2021218370A1 (zh) * | 2020-04-30 | 2021-11-04 | 华为技术有限公司 | 一种内存管理方法及终端设备 |
CN112338919B (zh) * | 2020-10-30 | 2022-03-04 | 珠海一微半导体股份有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112338919A (zh) * | 2020-10-30 | 2021-02-09 | 珠海市一微半导体有限公司 | 一种机器人的运行控制方法、机器人及芯片 |
CN112231090A (zh) * | 2020-11-04 | 2021-01-15 | Oppo广东移动通信有限公司 | 应用进程管理方法、装置及终端设备 |
CN113885787A (zh) * | 2021-06-08 | 2022-01-04 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN113722087A (zh) * | 2021-06-10 | 2021-11-30 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
WO2022257748A1 (zh) * | 2021-06-10 | 2022-12-15 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN116244067A (zh) * | 2021-06-10 | 2023-06-09 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
CN116244067B (zh) * | 2021-06-10 | 2024-05-03 | 荣耀终端有限公司 | 虚拟内存管理方法和电子设备 |
WO2023005783A1 (zh) * | 2021-07-26 | 2023-02-02 | 华为技术有限公司 | 数据处理方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503740A (zh) | 内存管理方法和装置 | |
CN104375828A (zh) | 内存优化方法及装置 | |
CN104239094A (zh) | 后台应用程序的控制方法、装置及终端设备 | |
CN105244048A (zh) | 音频播放控制方法和装置 | |
CN104766005A (zh) | 应用软件访问权限的管理方法和装置 | |
CN105182784A (zh) | 控制智能设备的方法、装置及终端 | |
CN104636140A (zh) | 固件压缩方法、固件解压方法和装置 | |
CN105120337A (zh) | 视频特效处理方法、装置及终端设备 | |
CN104933170A (zh) | 信息展示方法及装置 | |
CN104899610A (zh) | 图片分类方法及装置 | |
CN105204350A (zh) | 显示家电设备信息的方法及装置 | |
CN105487680A (zh) | 用于终端截屏的方法、装置及终端 | |
CN104837154A (zh) | 无线访问接入点的控制方法及装置 | |
CN105786507A (zh) | 显示界面切换的方法及装置 | |
CN105354017A (zh) | 信息处理方法及装置 | |
CN104378715A (zh) | 降低耳机pop音的装置和方法 | |
CN105430715A (zh) | 控制wifi扫描的方法及装置 | |
CN105511777A (zh) | 触控显示屏上的会话显示方法及装置 | |
CN104598534A (zh) | 图片折叠方法及装置 | |
CN104298424A (zh) | 一种文件操作方法及装置 | |
CN105224171A (zh) | 图标显示方法、装置及终端 | |
CN104951184A (zh) | 应用程序下载方法及装置 | |
CN104714826A (zh) | 应用主题的加载方法及装置 | |
CN105704322A (zh) | 天气信息获取方法及装置 | |
CN105204712A (zh) | 文件夹图标的显示方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150408 |
|
RJ01 | Rejection of invention patent application after publication |