CN112162780B - 应用运行控制方法、装置及电子设备 - Google Patents
应用运行控制方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112162780B CN112162780B CN202011016478.5A CN202011016478A CN112162780B CN 112162780 B CN112162780 B CN 112162780B CN 202011016478 A CN202011016478 A CN 202011016478A CN 112162780 B CN112162780 B CN 112162780B
- Authority
- CN
- China
- Prior art keywords
- application
- sub
- memory
- memory area
- running data
- 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
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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System (AREA)
Abstract
本申请提供了一种应用运行控制方法、装置及电子设备,在该方法中,如检测到应用完成初始化后,且内存的可用空间小于第一阈值,压缩内存中该应用的子应用的运行数据,得到该子应用的运行数据压缩包,其中,该应用由多个子应用构成;检测到用于调用该应用中第一子应用的处理请求,该第一子应用属于该应用中的多个子应用;解压内存中该第一子应用的运行数据压缩包,以使得第一子应用基于解压出的该第一子应用的运行数据处理该处理请求。本申请的方案可以降低由于内存不足而导致的应用运行异常。
Description
技术领域
本申请涉及内存管理技术领域,更具体地说,涉及一种应用运行控制方法、装置及电子设备。
背景技术
数据处理平台可以由单台电子设备构成,也可以是多台电子设备构成的集群或者云平台等。在数据处理平台中可以部署多种用于实现不同数据处理功能的应用。
其中,数据处理平台的应用会运行于该数据处理平台的内存空间。然而,数据处理平台的内存空间是有限的,如果数据处理平台所需运行的应用较多,很容易出现由于内存不足而导致应用运行异常。因此,如何减少由于内存不足而导致的应用运行异常是本领域技术人员需要解决的技术问题。
发明内容
本申请提供了一种应用运行控制方法、装置及电子设备。
其中,一种应用运行控制方法,包括:
检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,得到所述子应用的运行数据压缩包,其中,所述应用由多个子应用构成;
检测到用于调用所述应用中第一子应用的处理请求,所述第一子应用属于所述应用中的多个子应用;
解压内存中所述第一子应用的运行数据压缩包,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
优选的,所述检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,包括:
检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,所述内存划分为所述第一内存区和第二内存区;
所述解压内存中所述第一子应用的运行数据压缩包,包括:
将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区。
优选的,在检测到内存的第一内存区完成所述应用的初始化之前,还包括:
在内存的第一内存区中为所述应用的子应用分配内存运行空间,以在所述子应用的内存运行空间完成所述子应用的初始化;
所述检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,包括:
检测到完成应用中各子应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述子应用的内存运行空间中所述子应用的运行数据;
在内存的第二内存区为所述子应用分配内存压缩空间,将压缩得到的所述子应用的运行数据压缩包存储到所述子应用的内存压缩空间,并释放第一内存区中所述子应用的内存运行空间。
优选的,在所述将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区之后,还包括:
如所述第一内存区的可用空间小于第二阈值,确定所述应用中运行于所述第一内存区且处于空闲状态的至少一个第二子应用,压缩所述第一内存区中所述第二子应用的运行数据,并将压缩得到的所述第二子应用的运行数据压缩包保存至所述第二内存区。
优选的,在所述检测到用于调用所述应用中第一子应用的处理请求之后,还包括:更新所述第一子应用的调用次数并存储;
所述压缩所述第一内存中所述第二子应用的运行数据,并将压缩得到的所述第二子应用的运行数据压缩包保存至所述第二内存区,包括:
从所述至少一个第二子应用中确定调用次数符合条件的至少一个目标第二子应用,压缩所述第一内存区中所述至少一个目标第二子应用的运行数据,并将压缩得到的所述目标第二子应用的运行数据压缩包存储到所述第二内存区。
优选的,还包括:
在所述第一子应用处理完所述处理请求之后,压缩所述第一子应用的运行数据,得到的所述第一子应用的压缩运行数据包。
又一方面,本申请还提供了一种应用运行控制装置,包括:
第一压缩单元,用于检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,得到所述子应用的运行数据压缩包,其中,所述应用由多个子应用构成;
请求检测单元,用于检测到用于调用所述应用中第一子应用的处理请求,所述第一子应用属于所述应用中的多个子应用;
应用解压单元,用于解压内存中所述第一子应用的运行数据压缩包,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
优选的,所述第一压缩单元具体为,用于检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,所述内存划分为所述第一内存区和第二内存区;
所述应用解压单元具体为,用于将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
优选的,还包括:初始化准备单元,用于在第一压缩单元检测到内存的第一内存区完成所述应用的初始化之前,在内存的第一内存区中为所述应用的子应用分配内存运行空间,以在所述子应用的内存运行空间完成所述子应用的初始化;
所述第一压缩单元,包括:
第一压缩子单元,用于检测到完成应用中各子应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述子应用的内存运行空间中所述子应用的运行数据;
存储释放单元,用于在内存的第二内存区为所述子应用分配内存压缩空间,将压缩得到的所述子应用的运行数据压缩包存储到所述子应用的内存压缩空间,并释放第一内存区中所述子应用的内存运行空间。
又一方面,本申请还提供了一种电子设备,包括:处理器和存储器;
其中,所述处理器用于执行如上任一项所述的应用运行控制方法;
所述存储器用于存储所述处理器执行操作所需的程序。
通过以上方案可知,本申请在应用启动并完成初始化后,只要数据处理平台的内存空间小于第一阈值,便会压缩该应用中子应用的运行数据,使得内存中仅存储子应用的运行数据压缩包,减少了内存中存储的数据量。同时,在检测到调用该子应用的处理请求之后,通过解压该子应用的运行数据压缩包,便可以使得相应的子应用能够处理该处理请求。可见,通过本申请的方案,在保证应用正常处理数据的前提下,还可以减少应用运行所需占用的内存空间,从而可以降低由于数据处理平台的内存不足而导致的应用运行异常。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一种应用运行控制方法一个实施例的流程示意图;
图2为本申请中内存的存储空间划分的一种示意图;
图3为本申请一种应用运行控制方法又一个实施例的流程示意图;
图4为本申请中压缩前后的运行数据的对比示意图;
图5为本申请一种应用运行控制方法又一个实施例的流程示意图;
图6为本申请一种应用运行控制装置一个实施例的组成结构示意图;
图7为本申请提供的一种电子设备的一种组成架构示意图。
说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的部分,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示的以外的顺序实施。
具体实施方式
本申请的方案适用于数据处理平台,该数据处理平台可以为如平板电脑、台式电脑以及服务器等具备数据处理能力的电子设备,也可以是云平台以及服务器集群等等由多个电子设备组成的平台。
其中,数据处理平台部署有至少一个应用,在本申请中该数据处理平台部署的应用由多个子应用构成。具体的,在应用部署到数据处理平台之前,可以将应用被分解为多个子应用,使得应用由分解出的该多个子应用构成。其中,应用中不同子应用的数据相互独立。
如,可以利用代码分解技术,将应用分解为多个子应用,使得每个子应用负责该应用中的一部分数据处理功能。
下面结合流程图对本申请的方案进行详细介绍。
如图1,其示出了本申请一种应用运行控制方法一个实施例的流程示意图,本实施例的方法可以应用于上面提到的数据处理平台。本实施例的方法可以包括:
S101,检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中应用的子应用的运行数据,得到子应用的运行数据压缩包。
其中,应用完成初始化可以是应用中多个子应用均完成初始化。其中,应用的初始化可以包括:内存管理程序为内存分配内存空间,且应用在该内存空间加载该应用中各个子应用的数据。
其中,子应用的运行数据可以为内存中该子应用运行的数据,如该运行数据可以是内存中子应用的进程数据。
在本申请在检测到应用完成初始化的情况下,如果内存空间紧张,即内存的可用空间小于第一阈值,本申请会直接压缩内存中该应用的子应用的运行数据,以减少应用所占用的内存空间。
其中,内存的可用空间可以为内存剩余的可分配空间。其中,该第一阈值可以根据实际需要设定,对此不加限制。
可以理解的是,压缩该内存中应用的子应用的运行数据之后,在该内存中存储的是该子应用的运行数据压缩后的运行数据压缩包。
需要说明的是,在内存空间紧张的情况下,本申请可以分别压缩应用的每个子应用,使得应用的多个子应用均被压缩;还可以是仅仅压缩该应用中的部分子应用,如压缩应用中占用空间相对较大的至少一个或者设定数量个子应用。
S102,检测到用于调用应用中第一子应用的处理请求。
其中,第一子应用属于应用中的多个子应用,仅仅是为了便于区分,将处理请求所调用的子应用称为第一子应用。
如,内存管理程序可以在检测到处理请求之后,如确定该处理请求需调用该应用的子应用,则确认检测到调用该子应用的处理请求。
例如,该处理请求可以为应用的接口调用请求。在网关或者该数据处理平台存储了接口调用请求与子应用的映射关系之后,可以确定接口调用请求所调用的子应用。
S103,解压内存中第一子应用的运行数据压缩包,以使得第一子应用基于解压出的第一子应用的运行数据处理处理请求。
可以理解的是,通过对第一子应用的运行数据压缩包进行解压,可以得到第一子应用在内存中正常的运行数据,如,解压得到第一子应用的进程数据。在此基础上,第一子应用可以基于内存中该第一子应用的运行数据执行该处理请求相关的数据处理。
作为一种可选方式,在第一子应用处理完该处理请求之后,还可以压缩该第一子应用的运行数据,得到的该第一子应用的压缩运行数据包。或者是,在第一子应用处理完该处理请求之后,如内存的可用空间小于第二阈值,压缩该第一子应用的运行数据,并保存压缩得到的该第一子应用的运行数据压缩包。其中,该第二阈值可以根据需要设定,如,该第二阈值可以小于第一阈值。
在本申请中,应用启动并完成初始化后,只要数据处理平台的内存空间小于第一阈值,便会压缩该应用中子应用的运行数据,使得内存中仅存储子应用的运行数据压缩包,减少了内存中存储的数据量。同时,在检测到调用该子应用的处理请求之后,通过解压该子应用的运行数据压缩包,便可以使得相应的子应用能够处理该处理请求。可见,通过本申请的方案,在保证应用正常处理数据的前提下,还可以减少应用运行所需占用的内存空间,从而可以降低由于数据处理平台的内存不足而导致的应用运行异常。
同时,由于数据处理平台部署的应用已经被分解为多个子应用,在内存空间紧张的情况下,可以根据需要灵活的选择压缩部分或者全部的子应用的运行数据,使得内存压缩的灵活性更高。而且,在压缩了应用的子应用的运行数据之后,如果需要调用该子应用时,只需要解压该子应用的运行数据压缩包,而无需解压应用的所有子应用的运行数据压缩包,从而在内存压缩的情况下,可以减少解压缩数据的数据量。
可以理解的是,为了区分出应用中子应用的运行数据的压缩和解压状态,在本申请中还可以内存划分为第一内存区和第二内存区。其中,第一内存区可以用于存储应用中子应用的运行数据的内存空间;而第二内存区为用于存储压缩后的运行数据压缩包的存储空间。
考虑到内存中运行应用的运行数据所占用的空间较大,为了保证应用的可靠运行,该第一内存区要大于第二内存区。如图2所示,内存的空间包括第一内存区和第二内存区,该第二内存区要远小于第一内存区。其中,第一内存区的数据被压缩后可以存储到第二内存区,而第二内存区中被解压缩的数据可以转移到第一内存区,从而在第一内存区和第二内存区之间实现数据的压缩和解压缩的转换。
在内存分为如上第一内存区和第二内存区的前提下,如应用需要启动,内存管理程序会在内存的第一内存区为该应用分配运行所需的内存空间,以使得应用完成初始化。相应的,在内存管理程序检测到内存的第一内存区完成应用的初始化后,如该第一内存区的可用空间小于第一阈值,压缩该第一内存区内该应用中子应用的运行数据,并将压缩得到的子应用的运行数据压缩包存储到内存的第二内存区。
类似的,在需要解压第一子应用的运行数据压缩包时,可以将第二内存区中该第一子应用的运行数据压缩包解压到第一内存区,以使得第一子应用可以正常运行。
下面结合一种实现方式为例,对内存包括第一内存区和第二内存区的情况下,应用压缩和解压缩的过程进行介绍。如图3,其示出了本申请一种应用运行控制方法又一个实施例的流程示意图,本实施例的方法可以包括:
S301,在内存的第一内存区中为应用的子应用分配内存运行空间,以在子应用的内存运行空间完成子应用的初始化。
如,在检测到应用启动指令后,在第一内存区中分别确定应用的各个子应用确定可分配的内存空间,并为子应用分配相应的内存空间。
在本申请中,为了便于区分,将在第一内存区为子应用分配的内存空间称为内存运行空间。
S302,检测到完成应用中各子应用的初始化后,如第一内存区的可用空间小于第一阈值,压缩子应用的内存运行空间中子应用的运行数据,得到子应用的运行数据压缩包。
其中,子应用的内存运行空间也可以称为子应用对应的内存页,该子应用的内存页中存储有该子应用的运行数据,因此,也可以认为是压缩子应用的内存页,以得到相应的运行数据压缩包。
与前面实施例相似,本申请可以是压缩应用中全部的子应用的运行数据,也可以是仅仅压缩部分子应用的运行数据。如,可以基于子应用占用第一内存区的空间大小,压缩占用空间较大的一个或者多个子应用。又如,在存储有该应用中各个子应用的历史调用频率的情况下,可以将历史调用频率相对较多的一个或者多个子应用的运行数据进行压缩。
S303,在内存的第二内存区为子应用分配内存压缩空间,将压缩得到的子应用的运行数据压缩包存储到子应用的内存压缩空间,并释放第一内存区中子应用的内存运行空间。
其中,针对每个子应用,在压缩了该子应用的运行数据之后,内存管理程序均会在该第二内存区确定分配给子应用的内存空间。为了便于区分,将第二内存区中分配给子应用的内存空间称为内存压缩空间。
可以理解的是,释放第一内存中子应用的内存运行空间为:回收分配给在应用的内存运行空间,以使得该部分内存运行空间可以分配给其他应用或者该应用的其他子应用。其中,释放该第一内存中子应用的内存运行空间可以包括删除该内存运行空间与子应用的对应关系,还可以包括删除第一子内存中子应用的运行数据。
为了便于理解压缩应用中各子应用的运行数据的好处,可以参见图4,其示出了本申请中子应用占用第一内存区和第二内存区的空间对比示意图。
由图4可以看出,在图4中以应用包括子应用1、子应用2、子应用3和子应用4为例。
在图4中第二内存区之外的区域可以认为是第一内存区。在图4中,第一内存区中存储的是子应用的运行数据401,该运行数据401为解压缩状态(或者说未被压缩状态);而第二内存区存储是子应用的运行数据压缩包402是压缩后的运行数据。
在图4中第一内存区的方框表示一个子应用的运行数据所占用的内存空间,如,第一内存区中子应用1的方框表示子应用1的运行数据所占用内存空间大小。类似的,第二内存区的一个子应用所在的方框也表示该子应用的运行数据压缩包占用内存空间大小。
对比图4中第一内存区中子应用1的方框与第二内存区中子应用2的方框可知,子应用1的运行数据所占用的内存空间会大于子应用1的运行数据压缩包所占用的内存空间,因此,通过将子应用1的运行数据进行压缩,可以降低子应用在内存中占用的内存空间。同时,在需要调用子应用1时,可以将子应用1在第二内存区的运行数据压缩包解压到第一内存区,从而使得子应用正常运行并能够处理相应的处理请求。对于其他子应用也类似,在此不再赘述。
在一种可能的实现方式中,为了能够更为高效的控制应用中各个子应用对应的运行数据的压缩与解压缩,内存管理程序可以在需要启动应用时,确定第一内存区中分配给第一应用的第一内存范围区,并在第一内存范围区内为应用的各个子应用分配内存运行空间。
同时,在应用初始化后,如果第一内存区的可用空间小于第一阈值,内存管理程序也会在内存的第二内存区为应用分配第二内存范围区,并在第二内存范围区确定该应用中子应用的内存压缩空间,以在子应用的内存压缩空间中运行数据压缩包。
在此基础上,内存管理程序会关联存储该应用对应的第一内存区中的第一内存范围区和第二内存区中的第二内存范围区的信息。
相应的,在应用运行过程中,该应用中子应用的运行数据被压缩后,都会从该应用对应的第二内存范围区内确定存储该子应用的运行数据压缩包的存储区。同时,在应用的子应用对应的运行数据压缩包被解压后,解压出的子应用对应的运行数据也会存储到该应用对应的第一内存范围区内的存储区。
如图2所示,应用1的子应用的运行数据被压缩后,会从第一内存范围区内转移到第二内存范围区存储;而对第二内存范围区中该应用1的子应用的运行数据压缩包解压后,解压出的运行数据也会存储到该应用1的第一内存范围区。
当然,在实际应用中,应用对应的第一内存区内的第一内存范围区也可以分配给其他应用,但是该应用中子应用的运行数据只会存储到该第一内存范围区,而不会存储到第一内存区的其他空间区域。应用对应的第二内存区的第一内存范围区也可以分配给其他应用,但是应用中子应用的运行数据压缩包只存储在该第二内存范围区。S304,检测到用于调用应用中第一子应用的处理请求。
其中,该第一子应用为该应用的多个子应用中的一个。
S305,将第二内存区中该第一子应用的运行数据压缩包解压到第一内存区,以使得第一子应用基于解压出的第一子应用的运行数据处理处理请求。
可以理解的是,如果在步骤302中压缩了该应用的部分子应用的运行数据,内存管理程序可以记录各个应用的子应用的运行数据被压缩以及解压缩的状态。相应的,在检测到调用第一子应用的处理请求后,如果该第一子应用的运行数据被压缩存储到第二内存区,则从第二内存区获取该第一子应用的运行数据也压缩包并解压;如果该第一子应用的运行数据未被压缩,则第一子应用的运行数据仍保存在第一内存区,则可以直接将处理请求传递给该第一子应用对应的进程。
可以理解的是,在内存划分为第一内存区和第二内存区的情况下,在将第二内存区第一子应用的运行数据压缩包解压到第一内存区之后,如果该第一内存区的可用空间小于第二阈值,可以确定该应用中运行于该第一内存区且处于空闲状态的至少一个第二子应用。相应的,压缩该第一内存区中该第二子应用的运行数据,并将压缩得到的第二子应用的运行数据压缩包保存至该第二内存区,以增大用于运行应用的第一内存区中的可用空间。
其中,运行于第一内存区且处于空间状态的子应用是指运行数据存储于第一内存区(运行数据未被压缩)且当前未处于数据处理状态,如不存在需要该子应用处理的处理请求,也未处于处理请求的处理过程中。为了便于区分,将运行于第一内存区且处于空闲状态的子应用称为第二子应用。
作为一种可选方式,为了能够减少数据压缩与解压缩所带来的数据处理量,本申请还可以仅仅压缩哪些调用频率较低的第二子应用,因此,本申请还可以记录各个子应用的调用次数。在此基础上,在检测到用于调用应用中第一子应用的处理请求之后,还更新该第一子应用的调用次数并存储。相应的,在确定出至少一个第二子应用之后,本申请还可以从该至少一个第二子应用中确定调用次数符合条件的至少一个目标第二子应用,压缩该第一内存区中至少一个目标第二子应用的运行数据,并将压缩得到的目标第二子应用的运行数据压缩包存储到第二内存区。
其中,调用次数符合条件可以为调用次数最高,或者是,调用次数按照从高到低的排序,处于排序靠前的前设定位等。当然,该调用次数符合条件还可以有其他可能的情况,对此不加限制。
为了便于理解本申请的方案,下面以一种情况为例进行详细说明。如图5所示,其示出了本申请一种应用运行控制方法又一个实施例的流程示意图,本实施例的方法以数据处理平台的内存划分为第一内存区和第二内存区为例说明。其中,数据处理平台的内存可以为数据处理平台能够分配给用户程序的内存空间或者是主存储器的空间。
本实施例可以包括:
S501,在内存的第一内存区中为应用的子应用分配内存运行空间,以在子应用的内存运行空间完成子应用的初始化。
S502,检测到完成应用中各子应用的初始化后,如第一内存区的可用空间小于第一阈值,分别压缩应用中各子应用在其内存运行空间中的运行数据,得到应用中每个子应用的运行数据压缩包。
本实施例是以应用完成初始化之后,如果第一内存区的可用空间小于第一阈值,则需要压缩应用中全部子应用的运行数据为例。但是对于前面提到的仅仅压缩该应用的部分子应用的情况也适用于本实施例。
S503,针对应用的每个子应用,在内存的第二内存区为子应用分配内存压缩空间,将压缩得到的子应用的运行数据压缩包存储到子应用的内存压缩空间,并释放第一内存区中子应用的内存运行空间。
S504,检测到用于调用应用中第一子应用的处理请求,更新该第一子应用的调用次数并保存。
如,在应用中各个子应用均未被调用的情况下,应用的各个子应用的调用次数为0,如果每个子应用被调用,则该子应用对应的调用次数会加一。
S505,将第二内存区中该第一子应用的运行数据压缩包解压到第一内存区,以使得第一子应用基于解压出的第一子应用的运行数据处理该处理请求。
S506,如果该第一内存区的可用空间小于第二阈值,确定该应用中运行于该第一内存区且处于空闲状态的至少一个第二子应用。
S507,从该至少一个第二子应用中确定调用次数最高的至少一个目标第二子应用,压缩该第一内存中至少一个目标第二子应用的运行数据,并将压缩得到的目标第二子应用的运行数据压缩包存储到第二内存区。
当然,在本实施例中,也可以是调用了第一子应用之后,在第一子应用完成该处理请求的处理后,直接压缩该第一子应用的运行数据;或者是,检测到第一内存区的可用空间小于第二阈值,则压缩该第一子应用的运行数据。
对应本申请的一种应用运行控制方法,本申请还提供了一种应用运行控制装置。如图6所示,其示出了本申请一种应用运行控制装置一个实施例的组成结构示意图,本实施例的装置可以应用于数据处理平台,该装置可以包括:
第一压缩单元601,用于检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中该应用的子应用的运行数据,得到该子应用的运行数据压缩包,其中,该应用由多个子应用构成;
请求检测单元602,用于检测到用于调用该应用中第一子应用的处理请求,该第一子应用属于该应用中的多个子应用;
应用解压单元603,用于解压内存中该第一子应用的运行数据压缩包,以使得第一子应用基于解压出的该第一子应用的运行数据处理该处理请求。
作为一种可选方式,该装置还可以包括:重压缩单元,用于在该第一子应用处理完该处理请求之后,压缩该第一子应用的运行数据,得到的该第一子应用的压缩运行数据包。
在一种可能的实现方式中,该第一压缩单元具体为,用于检测到内存的第一内存区完成该应用的初始化后,如该第一内存区的可用空间小于第一阈值,压缩该第一内存区内该应用中子应用的运行数据,并将压缩得到的该子应用的运行数据压缩包存储到该内存的第二内存区,该内存划分为该第一内存区和第二内存区;
该应用解压单元具体为,用于将该第二内存区中该第一子应用的运行数据压缩包解压到该第一内存区,以使得第一子应用基于解压出的该第一子应用的运行数据处理该处理请求。
在一种可选的实现方式中,本申请的该装置还可以包括:初始化准备单元,用于在第一压缩单元检测到内存的第一内存区完成该应用的初始化之前,在内存的第一内存区中为该应用的子应用分配内存运行空间,以在该子应用的内存运行空间完成该子应用的初始化;
相应的,该第一压缩单元可以包括:
第一压缩子单元,用于检测到完成应用中各子应用的初始化后,如该第一内存区的可用空间小于第一阈值,压缩该子应用的内存运行空间中该子应用的运行数据;
存储释放单元,用于在内存的第二内存区为该子应用分配内存压缩空间,将压缩得到的该子应用的运行数据压缩包存储到该子应用的内存压缩空间,并释放第一内存区中该子应用的内存运行空间。
在又一种可能的实现方式中,该装置还可以包括:
第二压缩单元,用于在应用解压单元将该第二内存区中该第一子应用的运行数据压缩包解压到该第一内存区之后,如该第一内存区的可用空间小于第二阈值,确定该应用中运行于该第一内存区且处于空闲状态的至少一个第二子应用,压缩该第一内存区中该第二子应用的运行数据,并将压缩得到的该第二子应用的运行数据压缩包保存至该第二内存区。
进一步的,该装置还可以包括:次数管理单元,用于在请求检测单元检测到用于调用该应用中第一子应用的处理请求之后,更新该第一子应用的调用次数并存储;
该第二压缩单元在压缩该第一内存中该第二子应用的运行数据,并将压缩得到的该第二子应用的运行数据压缩包保存至该第二内存区时,具体为,用于从该至少一个第二子应用中确定调用次数符合条件的至少一个目标第二子应用,压缩该第一内存区中该至少一个目标第二子应用的运行数据,并将压缩得到的该目标第二子应用的运行数据压缩包存储到该第二内存区。
又一方面,本申请还提供了一种电子设备,该电子设备可以为数据处理平台,或者是组成数据处理平台的服务器、或者个人计算机等。
如图7所示,其示出了本申请一种电子设备的组成结构示意图,本实施例的电子设备至少包括处理器701和存储器702。
其中,该处理器701用于执行如上任意一个实施例中提到的应用运行控制方法;
该存储器702用于存储该处理器执行操作所需的程序。
当然,该电子设备还包括电源703。电源、处理器和存储器之间可以通过通信总线704相连。
当然,图7仅仅是电子设备的示意图,在实际应用中,该电子设备还可能会包括显示器、输入单元等等器件,对此不加限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用运行控制方法,包括:
检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,得到所述子应用的运行数据压缩包,其中,所述应用由多个子应用构成,所述多个子应用是对所述应用分解得到的;
检测到用于调用所述应用中第一子应用的处理请求,所述第一子应用属于所述应用中的多个子应用;
解压内存中所述第一子应用的运行数据压缩包,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
2.根据权利要求1所述的方法,所述检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,包括:
检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,所述内存划分为所述第一内存区和第二内存区;
所述解压内存中所述第一子应用的运行数据压缩包,包括:
将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区。
3.根据权利要求2所述的方法,在检测到内存的第一内存区完成所述应用的初始化之前,还包括:
在内存的第一内存区中为所述应用的子应用分配内存运行空间,以在所述子应用的内存运行空间完成所述子应用的初始化;
所述检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,包括:
检测到完成应用中各子应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述子应用的内存运行空间中所述子应用的运行数据;
在内存的第二内存区为所述子应用分配内存压缩空间,将压缩得到的所述子应用的运行数据压缩包存储到所述子应用的内存压缩空间,并释放第一内存区中所述子应用的内存运行空间。
4.根据权利要求2所述的方法,在所述将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区之后,还包括:
如所述第一内存区的可用空间小于第二阈值,确定所述应用中运行于所述第一内存区且处于空闲状态的至少一个第二子应用,压缩所述第一内存区中所述第二子应用的运行数据,并将压缩得到的所述第二子应用的运行数据压缩包保存至所述第二内存区。
5.根据权利要求4所述的方法,在所述检测到用于调用所述应用中第一子应用的处理请求之后,还包括:更新所述第一子应用的调用次数并存储;
所述压缩所述第一内存中所述第二子应用的运行数据,并将压缩得到的所述第二子应用的运行数据压缩包保存至所述第二内存区,包括:
从所述至少一个第二子应用中确定调用次数符合条件的至少一个目标第二子应用,压缩所述第一内存区中所述至少一个目标第二子应用的运行数据,并将压缩得到的所述目标第二子应用的运行数据压缩包存储到所述第二内存区。
6.根据权利要求1所述的方法,还包括:
在所述第一子应用处理完所述处理请求之后,压缩所述第一子应用的运行数据,得到的所述第一子应用的压缩运行数据包。
7.一种应用运行控制装置,包括:
第一压缩单元,用于检测到应用完成初始化后,如内存的可用空间小于第一阈值,压缩内存中所述应用的子应用的运行数据,得到所述子应用的运行数据压缩包,其中,所述应用由多个子应用构成,所述多个子应用是对所述应用分解得到的;
请求检测单元,用于检测到用于调用所述应用中第一子应用的处理请求,所述第一子应用属于所述应用中的多个子应用;
应用解压单元,用于解压内存中所述第一子应用的运行数据压缩包,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
8.根据权利要求7所述的装置,所述第一压缩单元具体为,用于检测到内存的第一内存区完成所述应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述第一内存区内所述应用中子应用的运行数据,并将压缩得到的所述子应用的运行数据压缩包存储到所述内存的第二内存区,所述内存划分为所述第一内存区和第二内存区;
所述应用解压单元具体为,用于将所述第二内存区中所述第一子应用的运行数据压缩包解压到所述第一内存区,以使得第一子应用基于解压出的所述第一子应用的运行数据处理所述处理请求。
9.根据权利要求8所述的装置 ,还包括:初始化准备单元,用于在第一压缩单元检测到内存的第一内存区完成所述应用的初始化之前,在内存的第一内存区中为所述应用的子应用分配内存运行空间,以在所述子应用的内存运行空间完成所述子应用的初始化;
所述第一压缩单元,包括:
第一压缩子单元,用于检测到完成应用中各子应用的初始化后,如所述第一内存区的可用空间小于第一阈值,压缩所述子应用的内存运行空间中所述子应用的运行数据;
存储释放单元,用于在内存的第二内存区为所述子应用分配内存压缩空间,将压缩得到的所述子应用的运行数据压缩包存储到所述子应用的内存压缩空间,并释放第一内存区中所述子应用的内存运行空间。
10.一种电子设备,包括:处理器和存储器;
其中,所述处理器用于执行如上权利要求1至6任一项所述的应用运行控制方法;
所述存储器用于存储所述处理器执行操作所需的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011016478.5A CN112162780B (zh) | 2020-09-24 | 2020-09-24 | 应用运行控制方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011016478.5A CN112162780B (zh) | 2020-09-24 | 2020-09-24 | 应用运行控制方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162780A CN112162780A (zh) | 2021-01-01 |
CN112162780B true CN112162780B (zh) | 2022-03-25 |
Family
ID=73863686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011016478.5A Active CN112162780B (zh) | 2020-09-24 | 2020-09-24 | 应用运行控制方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162780B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113885787B (zh) * | 2021-06-08 | 2022-12-13 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
CN109255086A (zh) * | 2018-08-27 | 2019-01-22 | 四川长虹电器股份有限公司 | 基于ionic开发框架的网页加载速度优化方法及装置 |
US20190370069A1 (en) * | 2018-06-03 | 2019-12-05 | Apple Inc. | Systems and methods for user adaptive resource management |
CN111158913A (zh) * | 2019-12-30 | 2020-05-15 | 联想(北京)有限公司 | 一种管理方法、管理装置、电子设备和存储介质 |
-
2020
- 2020-09-24 CN CN202011016478.5A patent/CN112162780B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270158A (zh) * | 2011-08-10 | 2011-12-07 | 深圳市万兴软件有限公司 | 一种应用程序多进程运行方法及装置 |
CN104375899A (zh) * | 2014-11-21 | 2015-02-25 | 北京应用物理与计算数学研究所 | 高性能计算机numa感知的线程和内存资源优化方法与系统 |
CN106843450A (zh) * | 2017-01-23 | 2017-06-13 | 努比亚技术有限公司 | 一种终端应用的存储处理方法和装置 |
US20190370069A1 (en) * | 2018-06-03 | 2019-12-05 | Apple Inc. | Systems and methods for user adaptive resource management |
CN109255086A (zh) * | 2018-08-27 | 2019-01-22 | 四川长虹电器股份有限公司 | 基于ionic开发框架的网页加载速度优化方法及装置 |
CN111158913A (zh) * | 2019-12-30 | 2020-05-15 | 联想(北京)有限公司 | 一种管理方法、管理装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112162780A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102206364B1 (ko) | 메모리 리클레임 방법 및 장치 | |
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
EP3355187A1 (en) | Loading method and device for terminal application (app) | |
EP3404538B1 (en) | Data processing method, and data processing apparatus | |
CN114096953A (zh) | 内存管理方法、装置、电子设备和计算机可读介质 | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
CN110895492B (zh) | 设备控制方法、装置、存储介质及电子设备 | |
CN111078410B (zh) | 内存分配方法、装置、存储介质及电子设备 | |
CN112667405B (zh) | 信息处理方法、装置、设备及存储介质 | |
CN112231108A (zh) | 任务处理方法、装置、计算机可读存储介质及服务器 | |
CN111338779A (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112162780B (zh) | 应用运行控制方法、装置及电子设备 | |
CN114546590B (zh) | Java虚拟机堆内存集合对象监测方法及内存溢出分析方法 | |
CN116185623A (zh) | 任务分配方法、装置、电子设备及存储介质 | |
CN112199042A (zh) | 存储空间管理方法、装置、芯片、设备及存储介质 | |
CN115658295A (zh) | 资源调度方法、装置、电子设备和存储介质 | |
CN115509861A (zh) | 进程监控方法、系统、计算机设备和存储介质 | |
CN115630806A (zh) | 一种任务调度方法、装置、计算机设备及存储介质 | |
CN115576565A (zh) | 应用程序的部署方法、装置、电子设备及存储介质 | |
CN114443223A (zh) | 一种裸机磁盘管理方法、装置及介质 | |
CN110188006B (zh) | 一种数据维护方法、装置及设备 | |
CN114327246A (zh) | 存储介质内数据存储方法、存储介质及计算机设备 | |
CN113296803A (zh) | 数据处理方法、装置、智能网卡和服务器 | |
CN111813574A (zh) | 图片压缩方法、装置、存储介质和电子设备 | |
KR101695238B1 (ko) | 다중 컴퓨팅 자원을 이용한 작업 스케줄링 시스템 및 방법 |
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 |