CN111638956A - 一种应用的运行方法、设备及存储介质 - Google Patents
一种应用的运行方法、设备及存储介质 Download PDFInfo
- Publication number
- CN111638956A CN111638956A CN202010465670.6A CN202010465670A CN111638956A CN 111638956 A CN111638956 A CN 111638956A CN 202010465670 A CN202010465670 A CN 202010465670A CN 111638956 A CN111638956 A CN 111638956A
- Authority
- CN
- China
- Prior art keywords
- space
- component
- memory
- application
- amount
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000003860 storage Methods 0.000 title claims abstract description 39
- 230000015654 memory Effects 0.000 claims abstract description 367
- 230000006870 function Effects 0.000 claims abstract description 77
- 210000003850 cellular structure Anatomy 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 210000004027 cell Anatomy 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/5022—Mechanisms to release resources
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
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
技术领域
本发明涉及计算机应用领域中的信息处理技术,尤其涉及一种应用的运行方法、设备及存储介质。
背景技术
目前,客户端设备中有各种各样的应用,比如APP(Application,应用程序);当运行应用实现对应的各功能时,客户端设备中处理器和内存系统频繁进行数据交互,以实现应用对应的各功能;因此,应用的运行需要内存空间的支持。
一般来说,当申请内存空间来运行应用时,如果客户端设备中空闲内存空间充足,则应用能正常运行;然而,如果客户端设备中空闲内存空间不充足,则应用就无法正常运行。因此,应用运行的健壮性低。
发明内容
本发明实施例提供一种应用的运行方法、设备及存储介质,能够提升应用运行的健壮性。
本发明实施例的技术方案是这样实现的:
本发明实施例提供一种应用的运行方法,包括:
响应空间分配失败事件,获取目标功能组件所请求的请求空间量;所述空间分配失败事件指由空闲内存空间不足导致空间的申请失败的事件,所述目标功能组件为所述应用中的任一功能组件;
指示所述应用的预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的待分配空间;
将所述待分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述待分配空间实现所述目标功能组件的运行。
本发明实施例提供一种应用的运行装置,包括:
事件响应模块,用于响应空间分配失败事件,获取目标功能组件所请求的请求空间量;所述空间分配失败事件指由空闲内存空间不足导致空间的申请失败的事件,所述目标功能组件为所述应用中的任一功能组件;
空间释放模块,用于指示所述应用的预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的待分配空间;
空间分配模块,用于将所述待分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述待分配空间实现所述目标功能组件的运行。
本发明实施例提供一种应用的运行设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的应用的运行方法。
本发明实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本发明实施例提供的应用的运行方法。
本发明实施例具有以下有益效果:通过捕获内存空间申请失败的事件,并针对该事件所请求的请求空间量,指示预设功能组件对预设功能组件的缓存数据所占用的空间进行释放,来使得目标功能组件能够申请到足够的空间来实现目标功能组件的运行,从而实现应用的运行;也就是说,即使在空闲内存空间不足应用无法运行时,也能通过挪用其他功能组件的缓存数据占用的内存空间,实现应用的正常运行;因此,能够提升应用运行的健壮性。
附图说明
图1示出了一种示例性的运行应用的示意图;
图2示出了一种示例性的申请内存空间的流程示意图;
图3是本发明实施例提供的应用的运行系统的一个可选的架构示意图;
图4是本发明实施例提供的终端的组成结构示意图;
图5是本发明实施例提供的应用的运行方法的一个可选的流程示意图;
图6是本发明实施例提供的应用的运行方法的另一个可选的流程示意图;
图7是本发明实施例提供的应用运行系统的另一个可选的架构示意图;
图8是本发明实施例提供的一种示例性的申请内存空间的示意图;
图9是本发明实施例提供的一种示例性的内存空间的申请流程示意图;
图10是本发明实施例提供的一种示例性的实现应用运行的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本发明实施例所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本发明实施例中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)内存系统,与内存对应,内存又称主存,其对应的存储空间是处理器能直接寻址的存储空间,从而是外存与处理器进行沟通的桥梁,用于暂时存放处理器中的运算数据,以及与硬盘等外部存储器交换的数据,以支撑计算机中所有应用的运行。
2)组件,指用于实现应用中的功能的模块或单元,又称为功能组件。
3)云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
4)区块链(Block Chain),是由区块(Block)形成的加密的、链式的交易的存储结构。
5)区块链网络(Block Chain Network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
一般来说,应用的运行,是通过该应用中的各功能组件分别向内存系统申请空间来实现。参见图1,图1示出了一种示例性的运行应用的示意图;如图1所示,手机中运行应用1-1(比如,APP,管理系统等)时,应用1-1所包含的各功能组件(数据缓存组件1-11、其他组件1-12、日志组件1-13和网络组件1-14等)分别向内存系统1-2申请内存空间,来执行对应的处理,以支撑应用1-1在手机上的正常运行。
然而,应用中的任一功能组件向内存系统申请空间,而因内存系统中空闲内存空间不足而申请失败时,均会导致应用无法运行而发生宕机,无法正常运行。参见图2,图2示出了一种示例性的申请内存空间的流程示意图;如图2所示:
S201、开始;即开始执行内存空间的申请。
S202、功能组件向内存系统申请内存空间;即应用的任一功能组件向内存系统申请内存空间。
S203、判断内存空间是否申请成功;如果是,则执行S204;如果否,则执行S205。
S204、是;即内存系统的空闲内存空间充足,申请成功;此时,应用正常运行,执行S207,结束内存空间申请流程。
S205、否;即内存系统的空闲内存空间不足,申请失败;此时,执行S206。
S206、应用无法运行;即应用无法运行而导致宕机,执行S207,结束内存空间申请流程。
S207、结束;即结束内存空间申请流程。
基于上述流程可知,应用运行的稳定性低,健壮性差。
基于此,本发明实施例提供一种应用的运行方法、装置、设备和存储介质,能够提升应用运行的稳定性和健壮性。
下面说明本发明实施例提供的应用的运行设备(以下简称为运行设备)的示例性应用,本发明实施例提供的运行设备可以实施为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,也可以实施为服务器。其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。下面,将说明运行设备实施为终端时的示例性应用。
需要说明的是,本发明实施例也可结合区块链技术实现,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。对于本发明实施例提供的结合区块链技术的应用的运行方法,具体参见后续描述。
还需要说明的是,本发明实施例所提供的应用的运行方法,可以应用在任意应用场景的应用的内存空间分配上;比如,可以应用在云平台中的应用的内存空间分配上,以提升云平台中应用运行的稳定性和健壮性,从而提升云服务质量。
需要说明的是,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,Identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of IndependentDisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。
参见图3,图3是本发明实施例提供的应用的运行系统的一个可选的架构示意图,为支撑一个应用的运行应用,在应用的运行系统100中,终端400(运行设备)通过网络300连接应用服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。其中,终端400中包括各种功能组件,各种功能组件中的任一功能组件即目标功能组件401,终端400所包括的各种功能组件中的一些组件即预设功能组件403,另外,终端400还包括内存池组件402和内存系统404。
应用服务器200,用于通过网络300向终端400提供应用运行的服务数据。
终端400,用于通过网络300向应用服务器200请求用于运行应用的服务数据。还用于在目标功能组件401通过内存池组件402向内存系统404申请空间时,响应空间分配失败事件,获取目标功能组件401所请求的请求空间量;空间分配失败事件指由空闲内存空间不足导致空间的申请失败的事件;指示应用的预设功能组件403,对预设功能组件403的缓存数据所占用的空间进行释放(即释放空间),得到空间量大于等于请求空间量的待分配空间;将待分配空间分配给目标功能组件401,以使目标功能组件401利用待分配空间实现目标功能组件401的运行,从而实现应用在终端400的运行。
参见图4,图4是本发明实施例提供的终端的组成结构示意图,图4所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Onl y Memory),易失性存储器可以是随机存取存储器(RAM,Random Access M emory)。本发明实施例描述的存储器450旨在包括任意适合类型的存储器。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
显示模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本发明实施例提供的应用的运行装置(以下简称为运行装置)可以采用软件方式实现,图4示出了存储在存储器450中的运行装置455,其可以是程序和插件等形式的软件,包括以下软件模块:事件响应模块4551、空间释放模块4552、空间分配模块4553、设置模块4554和事件获取模块4555,将在下文中说明各个模块的功能。
在另一些实施例中,本发明实施例提供的运行装置可以采用硬件方式实现,作为示例,本发明实施例提供的运行装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的应用的运行方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Applicati on Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-ProgrammableGate Array)或其他电子元件。
下面,将结合本发明实施例提供的终端的示例性应用和实施,说明本发明实施例提供的应用的运行方法。
参见图5,图5是本发明实施例提供的应用的运行方法的一个可选的流程示意图,将结合图5示出的步骤进行说明。
S501、响应空间分配失败事件,获取目标功能组件所请求的请求空间量。
在本发明实施例中,终端启动应用或应用运行过程中实现新的功能时,均伴随着内存空间的申请,如果当前空闲内存空间不足,则内存空间的申请就会失败;从而,终端获取该内存空间申请失败的事件,也就获取了空间分配失败事件。此时,终端对该空间分配识别事件进行响应,对应用中申请内存空间的功能组件进行获取,也就得到了目标功能组件;以及对目标功能组件所申请的内存空间的空间量进行获取,也就得到了目标功能组件所请求的请求空间量。
这里,终端获取目标功能组件所请求的请求空间量时,可以根据空间分配失败事件,获取对应的空间申请信息,以根据该空间申请信息获取到目标功能组件所请求的请求空间量;还可以直接从空间分配失败事件中,获取目标功能组件所请求的请求空间量;等等,本发明实施例对此不作具体限定。
需要说明的是,空间分配失败事件指由内存空闲空间不足导致空间的申请失败的事件;目标功能组件为应用中的任一功能组件,比如,日志组件、网络组件、数据缓存组件或其他组件等。
S502、指示应用的预设功能组件,对预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于请求空间量的待分配空间。
在本发明实施例中,终端中设置有预设功能组件,用于在内存空闲空间不足时释放缓存数据占用的内存空间,以供目标功能组件申请,比如,数据缓存组件或日志组件等;因此,终端获得请求空间量之后,为了在内存空闲空间不足时,使目标功能组件能够申请到足够的内存空间,指示预设功能组件对预设功能组件的缓存数据所占用的空间进行释放,以通过释放的空间使目标功能组件能够获取到足够的内存空间;从而,通过空间的释放,终端也就得到了空间量大于等于请求空间链的待分配空间。这里,所释放的内存空间,是依据请求空间量进行释放的;也就是说,只要在完成空间释放之后,能够满足请求空间量即可。
需要说明的是,预设功能组件对应的缓存数据中包括用于应用运行的辅助数据,比如,用于回看视频的视频缓存信息,或聊天记录中图片缓存信息等;从而预设功能组件对这些辅助数据所占用的内存空间进行空间释放,也不会影响应用的正常运行,即这些辅助数据并不是运行应用的充分必要数据,即使不利用这些辅助数据,应用也不会因无法运行而导致宕机。另外,待分配空间即目标功能组件所请求申请的内存空间。
S503、将待分配空间分配给目标功能组件,以使目标功能组件利用待分配空间实现目标功能组件的运行。
在本发明实施例中,由于待分配空间指用于分配给目标功能组件的空间,从而,终端获得了待分配空间之后,将待分配空间分配给目标功能组件;如此,目标功能组件获得待分配空间之后,也就获得了足够的内存空间,从而也就能够进行对应的功能处理了,从而应用也就能够正常运行了。
可以理解的是,由于在运行应用时,能够通过捕获内存空间申请失败的事件,并针对该事件所请求的空间量,指示预设功能组件进行空间释放,来使得目标功能组件能够申请到足够的内存空间来支撑应用的运行;从而,即使在空闲内存空间不足应用无法运行时,也能通过挪用其他功能组件对应的缓存数据占用的内存空间,实现应用的正常运行;因此,能够提升应用运行的健壮性。
在本发明实施例中,应用还包括内存池组件,该内存池组件用于控制应用的空闲内存空间的分配;也就是说,内存池组件为应用中的功能组件,用于控制应用中各功能组件的内存空间的分配。从而,上述S501-S503,均是通过内存池组件实现的;也就是说,S501-S503可通过S5011、S5021和S5031实现,其中:
S5011、内存池组件响应空间分配失败事件,获取目标功能组件所请求的请求空间量。
S5021、内存池组件指示预设功能组件,对预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于请求空间量的待分配空间。
S5031、内存池组件将待分配空间分配给目标功能组件。
可以理解的是,通过在应用中增加用于管理应用自身的内存空间分配的内存池组件,使得预设功能组件的内存空间的分配更灵活,以及预设功能组件的内存空间的分配和整个应用中内存空间的分配串联,有效保证了应用的正常运行,提高了健壮性。
在本发明实施例中,S501之前还包括S504和S505;也就是说,终端响应空间分配失败事件,获取目标功能组件所请求的请求空间量之前,该应用的运行方法还包括S504和S505,下面对各步骤分别进行说明。
S504、获取应用的各个功能组件,得到功能组件集合。
在本发明实施例中,应用中包括各个功能组件,终端对应用中的各个功能组件进行获取,也就获得了应用的各个功能组件组成的功能组件集合。这里,功能组件集合中不包括内存池组件。
S505、从功能组件集合中选择满足预设选择条件的功能组件,将选择的功能组件作为预设功能组件。
在本发明实施例中,终端中预先设置有预设选择条件,或者终端能够获取到预设选择条件,该预设选择条件用于从功能组件集合中选择功能组件作为预设功能组件;因此,终端在获得功能组件集合之后,从该功能组件集合中选择满足预设选择条件功能组件,也就得到了预设功能组件。易知,预设功能组件中包括至少一个功能组件。
需要说明的是,预设选择条件包括缓存数据量、数据类型和组件功能中的至少一种。其中,缓存数据量指功能组件所缓存数据的数据量,作为预设数据量阈值;从而,对于缓存数据的数据量较大(大于预设数据量阈值)的功能组件,该功能组件即是满足预设选择条件的功能组件。数据类型指功能组件所缓存数据的类型,比如,回看数据类型、预先缓存数据类型等;从而,功能组件中的缓存数据的类型属于该数据类型,该功能组件即是满足预设选择条件的功能组件。组件功能指功能组件对应的功能,比如,缓存回看数据、存储日志等;从而,功能组件对应的功能的类型属于该功能类型,该功能组件即是满足预设选择条件的功能组件。
可以理解的是,终端通过设置预设功能组件,用于在内存申请失败时释放内存空间;使得应用中任一功能组件申请内存空间而由于空闲内存空间不足导致申请失败时,通过预设功能组件释放内存空间,使得申请内存空间的功能组件能够申请到足够的内存空间,从而使得应用能够正常运行,提升了应用运行的健壮性。
在本发明实施例中,S5021可通过S50211-S50213实现;也就是说,终端通过内存池组件,指示预设功能组件,对预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于请求空间量的待分配空间,包括S50211-S50213,下面对各步骤分别进行说明。
S50211、将内存池组件对应的空闲内存空间,作为第一空闲空间。
需要说明的是,预设功能组件进行空间释放时,所释放的内存空间的空间量是通过内存池组件中对应的空闲内存空间确定的;因此,终端需要获取内存池组件对应的空闲内存空间;这里,所获得的内存池组件对应的空闲空间即第一空闲空间。
S50212、内存池组件指示预设功能组件,对预设功能组件的缓存数据所占用的空间进行释放,直到释放的空间结合第一空闲空间组成的连续空间的空间量,不小于请求空间量时,停止释放,得到目标释放空间。
需要说明的是,内存空间的分配是指连续空间的分配;以及,预设功能组件包括至少一个功能组件,从而预设功能组件进行空间释放时,可以是一个功能组件进行的空间释放,也可以是多个功能组件进行的空间释放,只要所释放的内存空间与第一空闲空间合并后,对应的连续空间的空间量能够满足请求空间量的申请即可。这里,目标释放空间指预设功能组件所释放的内存空间。
S50213、从目标释放空间结合第一空闲空间组成的连续空间中,确定空间量大于等于请求空间量的待分配空间。
在本发明实施例中,当预设功能组件完成了目标释放空间的释放时,空闲内存空间即目标释放空间和第一空闲空间;从而,终端将目标释放空间和第一空闲空间组成的空闲空间中的连续空间中,空间量大于等于请求空间量的连续空间确定为待分配空间;也就是说,待分配空间是目标释放空间和第一空闲空间的组合空间中,空间量大于等于请求空间量的连续的内存空间。
在本发明实施例中,S50213可通过S502131和S502132实现;也就是说,终端从目标释放空间结合第一空闲空间组成的连续空间中,确定空间量大于等于请求空间量的待分配空间,包括S502131和S502132,下面对该步骤进行说明。
S502131、内存池组件缓存目标释放空间。
在本发明实施例中,为了使得预设功能组件释放的目标释放空间,能够被应用申请到,这里,终端通过内存池组件缓存该目标释放空间。
S502132、从缓存的目标释放空间结合第一空闲空间组成的连续空间中,确定空间量大于等于请求空间量的待分配空间。
需要说明的是,当预设功能组件完成了空间的释放,以及所释放的目标释放空间通过内存池组件缓存之后,内存池组件对应的空闲内存空间即目标释放空间和第一空闲空间;从而,对目标功能组件进行内存空间分配时,是从内存池组件缓存的目标释放空间和第一空闲空间中确定的。
可以理解的是,预设功能组件释放的内存空间由内存池组件缓存,如此,能够保证所释放的内存空间能够被目标功能组件申请到,从而,也就为应用的稳定运行提供了有效保证。
参见图6,图6是本发明实施例提供的应用的运行方法的另一个可选的流程示意图;如图6所示,本发明实施例提供的应用的运行方法包括S5011、S5021和S5031,并且S5011之前还包括S601-S603;也就是说,终端通过内存池组件,响应空间分配失败事件,获取目标功能组件所请求的请求空间量之前,该应用的运行方法还包括S601-S603,下面对各步骤分别进行说明。
S601、内存池组件获取目标功能组件发送的空间申请请求;空间申请请求包括请求空间量。
在本发明实施例中,由于内存池组件用于控制应用中内存空间的分配,因此,当应用中的目标功能组件申请内存空间时,内存池组件也就接收到了目标功能组件发送的空间申请请求。易知,空间申请请求是指目标功能组件申请内存空间的请求,并且该空间申请请求中,包括请求空间量。
S602、当第一空闲空间中的连续空间对应的空间量小于请求空间量时,内存池组件向内存系统申请空间。
在本发明实施例中,由于内存池组件中当前空闲的内存空间为第一空闲空间,因此,终端获得请求空间量之后,将该请求空间量与第一空闲空间中的连续空间对应的空间量对比;当第一空闲空间中的连续空间对应的空间量小于请求空间量时,表明内存池组件中空闲的内存空间不足够分配,无法实现应用所请求的内存空间的成功分配;此时,终端通过内存池组件向内存系统申请内存空间。
S603、内存池组件获取内存系统发送的空间分配失败事件。
在本发明实施例中,在通过内存池组件向内存系统申请空间时,将内存系统中空闲内存空间作为第二空闲空间,再将第二空闲空间中的连续空间对应的空间量与请求空间量对比,第二空闲空间中的连续空间对应的空间量小于请求空间量时,表明内存系统中空闲内存空间也不足;此时,也就生成了空间分配失败事件,这里,当内存系统向内存池组件发送该空间分配失败事件时,终端也就通过内存池组件获取内存系统发送的空间分配失败事件。
需要说明的是,空间分配失败事件为内存系统在第二空闲空间中的连续空间对应的空间量小于请求空间量时生成的,第二空闲空间为内存系统的空闲内存空间。
继续参见图6,在本发明实施例中,S601之后还包括S604和S605;也就是说,终端通过内存池组件,获取目标功能组件发送的空间申请请求之后,该应用的运行方法还包括:
S604、当第一空闲空间中的连续空间对应的空间量大于等于请求空间量时,从第一空闲空间中,确定空间量大于等于请求空间量相等的连续空间,得到第一分配空间。
在本发明实施例中,终端将请求空间量与第一空闲空间中的连续空间对应的空间量对比时,如果第一空闲空间中的连续空间对应的空间量大于等于请求空间量时,表明内存池组件中空闲的内存空间充足,能够实现应用所请求的内存空间的成功分配;此时,终端通过内存池组件将自身的第一空闲空间中,空间量大于等于请求空间量的连续的内存空间,作为第一分配空间。
S605、内存池组件将第一分配空间,分配给目标功能组件,以使目标功能组件利用第一分配空间实现目标功能组件的运行。
需要说明的是,第一分配空间为在内存池组件中空闲内存空间充足时所确定的向目标功能组件分配的内存空间,从而,当终端获得了第一分配空间之后,通过内存池组件将该第一分配空间分配给目标功能组件,以使目标功能组件利用该第一分配空间执行对应的处理,实现目标功能组件的运行,进而实现应用的运行。
继续参见图6,在本发明实施例中,S602之后还包括S606-S609;也就是说,当第一空闲空间中的连续空间对应的空间量小于请求空间量时,终端通过内存池组件向内存系统申请空间之后,该应用的运行方法还包括S606-S609,下面对各步骤分别进行说明。
S606、内存池组件获取内存系统发送的空间分配成功事件,空间分配成功事件包括空间地址信息。
在本发明实施例中,在将第二空闲空间中的连续空间对应的空间量与请求空间量对比,第二空闲空间中的连续空间对应的空间量大于等于请求空间量时,表明内存系统中空闲内存空间足够,从而内存池组件能够从内存系统中成功获取到满足分配需要的内存空间;此时,内存系统也就生成了空间分配成功事件,从而,当内存系统向内存池组件发送该空间分配成功事件时,终端也就通过内存池组件获取内存系统发送的空间分配成功事件。
需要说明的是,空间分配成功事件指空闲内存空间足够,空间的申请成功的事件;并且,空间分配成功事件包括空间地址信息,该空间地址信息指内存系统分配给内存池组件的空间所对应的地址信息。
S607、内存池组件缓存空间地址信息对应的初始分配空间。
在本发明实施例中,终端通过内存池组件获得空间地址信息后,将该空间地址信息对应的空间即初始分配空间缓存至内存池组件中,以通过内存池组件进行内存空间的分配。这里,初始分配空间对应的空间量大于等于请求空间量。
S608、从缓存的初始分配空间结合第一空闲空间组成的连续空间中,确定空间量大于等于请求空间量的第二分配空间。
在本发明实施例中,当内存池组件完成了初始分配空间的缓存之后,在内存池组件中空闲的内存空间为初始分配空间和第一空闲空间,从而此时,终端通过内存池组件,从初始分配空间和第一空闲空间组合后的空闲空间中的连续空间中,确定空间量大于等于请求空间量的第二分配空间。
S609、将第二分配空间分配给目标功能组件,以使目标功能组件利用第二分配空间实现目标功能组件的运行。
需要说明的是,第二分配空间为在内存池组件空间不足而内存中空间足够时,确定的用于分配至目标功能组件的连续的内存空间;从而,当终端获得了第二分配空间之后,通过内存池组件将该第二分配空间分配给目标功能组件,以使目标功能组件利用该第二分配空间执行对应的处理,实现目标功能组件的运行,从而实现应用的运行。
在本发明实施例中,S505之后,还包括S506;也就是说,终端从功能组件集合中选择满足预设选择条件的功能组件,将选择的功能组件作为预设功能组件之后,该应用的运行方法还包括S506:将预设功能组件发送至区块链网络,以使区块链网络的节点将预设功能组件填充至新区块,且当对新区块共识一致时,将新区块追加至区块链的尾部以完成上链。这里,终端将设置的预设功能组件进行上链,如此,以保证不可篡改。
下面以服务器将预设功能组件上传至区块链网络保存为例,说明区块链网络的示例性应用,参见图7,客户端节点810可以是终端400。其中,业务主体800和业务主体900在认证中心700中进行过登记注册。
首先,在客户端节点810设置预设功能组件上链的逻辑,例如当获得预设功能组件时,客户端节点810将预设功能组件发送至区块链网络600时,生成对应的交易,交易包括:为了上链预设功能组件而需要调用的智能合约、以及向智能合约传递的参数;交易还包括客户端节点810的数字证书、签署的数字签名,并将交易广播到区块链网络600中的共识节点610。
然后,区块链网络600中的共识节点610中接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体800的身份,确认业务主体800是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署共识节点610自己的数字签名(例如,使用共识节点610的私钥对交易的摘要进行加密得到),并继续在区块链网络600中广播。
最后,区块链网络600中的共识节点610接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络600中的共识节点610广播的新区块时,会对新区块进行验证,例如,验证新区块中交易的数字签名是否有效,如果验证成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交的存储预设功能组件的交易,在状态数据库中添加包括预设功能组件的键值对。
再以服务器在区块链网络600中查询预设功能组件为例,说明区块链网络的示例性应用。参见图7,客户端节点910可以是终端400。
在一些实施例中,客户端节点910在区块链网络600中能够查询的数据的类型,可以由共识节点610通过约束业务主体的客户端阶段能够发起的交易的权限来实现,当客户端节点910具有发起查询预设功能组件的权限时,可以由客户端节点910生成用于查询预设功能组件的交易并提交到区块链网络600中,从共识节点610执行交易以从状态数据库中查询相应的预设功能组件,并返回客户端节点910。
以应用在终端运行的应用场景为例进行应用的说明:终端设置预设功能组件,并将预设功能组件上链;当应用运行时,从区块链网络中获取预设功能组件进行空间释放,从而可以准确确定进行空间释放的对象;如此,能够提升应用运行的健壮性和安全性。
需要说明的是,在本发明实施例中,申请空间和申请内存空间属于同一描述。
下面,将说明本发明实施例在一个实际的应用场景中的示例性应用。
示例性地,参见图8,图8是本发明实施例提供的一种示例性的申请内存空间的示意图;如图8所示,终端中运行应用8-1时,应用8-1所包含的各功能组件(数据缓存组件8-11、其他组件8-12、日志组件8-13和网络组件8-14等)均分别通过内存池组件8-15向内存系统8-2申请内存空间,来执行对应的处理,以支撑应用8-1在手机上的正常运行。
基于图8,在应用8-1中,内存空间的申请流程如图9所示:
S901、开始;即开始执行内存空间的申请。
S902、功能组件向内存池组件申请内存空间;即应用8-1的功能组件(目标功能组件,为数据缓存组件8-11、其他组件8-12、日志组件8-13和网络组件8-14等组件中任一个功能组件)向内存池组件8-15申请内存空间。
S903、判断内存空间是否申请成功,如果是,则执行S904,如果否,则执行S905。
S904、是;即内存池组件8-15的空闲内存空间充足或内存系统8-2的空闲内存空间充足,申请成功;此时,应用8-1正常运行,执行S911,结束内存空间申请流程。
S905、否;即内存池组件8-15的空闲内存空间(第一空闲空间)不足且内存系统8-2的空闲内存空间(第二空闲空间)也不足,执行S906。
S906、预设功能组件进行空间释放;即内存池组件8-15指示数据缓存组件8-11进行空间释放。
S907、判断空间释放是否成功;即判断释放的空间能否满足申请需求,也就是判断释放的空间与内存池组件8-15中的空闲内存空间组合的连续空间对应的空间量是否大于等于请求空间量。
S908、是;即释放的空间和内存池组件8-15的空闲内存空间所对应的连续空间,能够满足申请的内存空间;此时,执行S902,由于内存池组件8-15中此时空闲内存空间充足,从而应用8-1组件向内存池组件8-15申请内存空间,且能够成功申请到所需内存空间,应用正常运行,执行S911,结束内存空间申请流程。
S909、否;即释放的空间和内存池组件8-15的空闲内存空间所对应的连续空间,不能够满足申请的内存空间时,则应用8-1的组件申请空间失败,应用8-1无法运行而导致宕机,执行S910。
S910、应用无法运行;即应用无法运行而导致宕机,执行S911,结束内存空间申请流程。
S911、结束;即结束内存空间申请流程。
需要说明的是,内存池组件8-15用于获取向内存系统8-2申请内存空间失败的事件以及缓存数据缓存组件8-11释放的内存空间:
1)、获取向内存系统8-2申请内存空间失败的事件。向内存系统8-2申请内存空间失败的事件说明内存系统8-2已经没有足够的内存空间,获取向内存系统8-2申请内存空间失败的事件并指示数据缓存组件8-11释放内存空间。
2)、缓存数据缓存组件8-11释放的内存空间。如此,保证数据缓存组件8-11释放的内存空间被内存池组件8-15持有,以满足申请内存空间的组件对内存空间的申请;否则,比如释放内存空间至内存系统8-2,则可能被其他应用抢先申请。
基于图8,图10是本发明实施例提供的一种示例性的实现应用运行的流程示意图,如图10所示:
S1001、网络组件向内存池组件申请内存空间。
需要说明的是,应用8-1的网络组件8-14(目标功能组件)向内存池组件8-15申请m比特(请求空间量m>0)内存空间。如果内存池组件8-15中当前的连续空闲内存(第一空闲空间中的连续空间对应的空间量)为i比特,且i<m,则内存池组件8-15的内存空间不足,执行S1002。
S1002、内存池组件的空闲内存空间不足,向内存系统申请内存空间。
需要说明的是,内存池组件8-15向内存系统8-2申请n比特(n>=m)内存空间。如果内存系统8-2的内存空间也不足,则执行S1003。而如果内存系统8-2能够满足n比特的需求,则由内存系统8-2向内存池组件8-15分配n比特内存空间(初始分配空间),并由内存池组件8-15分配m比特内存空间给网络组件8-14。
S1003、内存系统的空闲内存空间不足,返回申请失败信息。
需要说明的是,内存池组件8-15根据内存系统8-2返回的申请失败信息(比如,返回的返回值为空值,空间分配失败事件),执行S1004。
S1004、内存池组件指示数据缓存组件进行空间释放。
需要说明的是,内存池组件8-15获取到申请失败信息后,确定内存系统8-2中的空闲内存空间也不足,从而内存池组件8-15通过嵌入在数据缓存组件8-11中的回调函数,指示数据缓存组件8-11进行空间释放,执行S1005。
S1005、数据缓存组件释放内存空间。
需要说明的是,数据缓存组件8-11释放对应的缓存数据(比如,音频缓存信息,视频回看信息等)所占的空间到内存池组件8-15,直到内存池组件8-15中的连续空闲内存k>=m,执行S1006。这里,如果进行空间释放,所释放的内存空间仍不能满足m比特的内存空间的申请,则应用8-1仍无法运行;以及,所释放的缓存数据为不影响应用8-1的基本运行的数据,而影响应用8-1的基本运行的数据不能释放,可根据实际情况进行自定义(例如,用户鉴权信息所占用的内存空间不能释放等)。
S1006、内存池组件向网络组件分配内存空间。
需要说明的是,当前内存池组件8-15中存在足够的空闲内存空间,能够满足m比特内存空间的分配时,内存池组件8-15向网络组件8-14分配m比特内存空间;从而网络组件8-14根据得到的m比特内存空间继续正常工作,以使应用8-1能够正常运行。
下面继续说明本发明实施例提供的运行装置455的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器450的运行装置455中的软件模块可以包括:
事件响应模块4551,用于响应空间分配失败事件,获取目标功能组件所请求的请求空间量;所述空间分配失败事件指由空闲内存空间不足导致空间的申请失败的事件,所述目标功能组件为所述应用中的任一功能组件;
空间释放模块4552,用于指示所述应用的预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的待分配空间;
空间分配模块4553,用于将所述待分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述待分配空间实现所述目标功能组件的运行。
在一些实施例中,所述应用还包括内存池组件,所述内存池组件用于控制所述应用的空闲内存空间的分配;
所述事件响应模块4551,还用于通过所述内存池组件,响应所述空间分配失败事件,获取所述目标功能组件所请求的所述请求空间量。
所述空间释放模块4552,还用于通过所述内存池组件,指示所述预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的所述待分配空间。
所述空间分配模块4553,还用于通过所述内存池组件,将所述待分配空间分配给所述目标功能组件。
在一些实施例中,所述运行装置455还包括设置模块4554,用于获取所述应用对应的各个功能组件,得到功能组件集合;从所述功能组件集合中选择满足预设选择条件的功能组件,将选择的功能组件作为所述预设功能组件;所述预设选择条件包括缓存数据量、数据类型和组件功能中的至少一种。
在一些实施例中,所述空间释放模块4552,还用于将所述内存池组件对应的空闲内存空间,作为第一空闲空间;通过所述内存池组件,指示所述预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,直到释放的空间结合所述第一空闲空间组成的连续空间的空间量,不小于所述请求空间量时,停止释放,得到目标释放空间;从所述目标释放空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的所述待分配空间。
在一些实施例中,所述空间释放模块4552,还用于通过所述内存池组件缓存所述目标释放空间;从缓存的所述目标释放空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的所述待分配空间。
在一些实施例中,所述运行装置455还包括事件获取模块4555,用于通过所述内存池组件,获取所述目标功能组件发送的空间申请请求;所述空间申请请求包括所述请求空间量;当第一空闲空间中的连续空间对应的空间量小于所述请求空间量时,通过所述内存池组件向内存系统申请空间;通过所述内存池组件获取所述内存系统发送的所述空间分配失败事件;其中,所述空间分配失败事件为所述内存系统在第二空闲空间中的连续空间对应的空间量小于所述请求空间量时生成的,所述第二空闲空间为所述内存系统的空闲内存空间。
在一些实施例中,所述空间分配模块4553,还用于当所述第一空闲空间中的连续空间对应的空间量大于等于所述请求空间量时,从所述第一空闲空间中,确定空间量大于等于所述请求空间量的连续空间,得到第一分配空间;通过所述内存池组件,将所述第一分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述第一分配空间实现所述目标功能组件的运行。
在一些实施例中,所述空间分配模块4553,还用于通过所述内存池组件获取所述内存系统发送的所述空间分配成功事件;所述空间分配成功事件包括空间地址信息;通过所述内存池组件缓存所述空间地址信息对应的初始分配空间;所述初始分配空间对应的空间量大于等于所述请求空间量;从缓存的所述初始分配空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的第二分配空间;将所述第二分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述第二分配空间实现所述目标功能组件的运行。
本发明实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本发明实施例提供的应用的运行方法,例如,如图5和图6示出的应用的运行方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EP ROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(H TML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本发明实施例,通过捕获内存空间申请失败的事件,并针对该事件所请求的请求空间量,指示预设功能组件对预设功能组件的缓存数据所占用的空间进行释放,来使得目标功能组件能够申请到足够的空间来实现目标功能组件的运行,从而实现应用的运行;也就是说,即使在空闲内存空间不足应用无法运行时,也能通过挪用其他功能组件的缓存数据占用的内存空间,实现应用的正常运行;因此,能够提升应用运行的健壮性。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (10)
1.一种应用的运行方法,其特征在于,包括:
响应空间分配失败事件,获取目标功能组件所请求的请求空间量;所述空间分配失败事件指由空闲内存空间不足导致空间的申请失败的事件,所述目标功能组件为所述应用中的任一功能组件;
指示所述应用的预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的待分配空间;
将所述待分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述待分配空间实现所述目标功能组件的运行。
2.根据权利要求1所述的方法,其特征在于,所述应用还包括内存池组件,所述内存池组件用于控制所述应用的空闲内存空间的分配;
所述内存池组件响应所述空间分配失败事件,获取所述目标功能组件所请求的所述请求空间量;
所述内存池组件指示所述预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的所述待分配空间;
所述内存池组件将所述待分配空间分配给所述目标功能组件。
3.根据权利要求1或2所述的方法,其特征在于,所述响应空间分配失败事件,获取目标功能组件所请求的请求空间量之前,所述方法还包括:
获取所述应用对应的各个功能组件,得到功能组件集合;
从所述功能组件集合中选择满足预设选择条件的功能组件,将选择的功能组件作为所述预设功能组件;所述预设选择条件包括缓存数据量、数据类型和组件功能中的至少一种。
4.根据权利要求2所述的方法,其特征在于,所述内存池组件指示所述预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,得到空间量大于等于所述请求空间量的所述待分配空间,包括:
将所述内存池组件对应的空闲内存空间,作为第一空闲空间;
所述内存池组件指示所述预设功能组件,对所述预设功能组件的缓存数据所占用的空间进行释放,直到释放的空间结合所述第一空闲空间组成的连续空间的空间量,不小于所述请求空间量时,停止释放,得到目标释放空间;
从所述目标释放空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的所述待分配空间。
5.根据权利要求4所述的方法,其特征在于,所述从所述目标释放空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的所述待分配空间,包括:
所述内存池组件缓存所述目标释放空间;
从缓存的所述目标释放空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的所述待分配空间。
6.根据权利要求2或4或5所述的方法,其特征在于,所述内存池组件响应空间分配失败事件,获取所述目标功能组件所请求的请求空间量之前,所述方法还包括:
所述内存池组件获取所述目标功能组件发送的空间申请请求;所述空间申请请求包括所述请求空间量;
当第一空闲空间中的连续空间对应的空间量小于所述请求空间量时,所述内存池组件向内存系统申请空间;
所述内存池组件获取所述内存系统发送的所述空间分配失败事件;
其中,所述空间分配失败事件为所述内存系统在第二空闲空间中的连续空间对应的空间量小于所述请求空间量时生成的,所述第二空闲空间为所述内存系统的空闲内存空间。
7.根据权利要求6所述的方法,其特征在于,所述内存池组件获取所述目标功能组件发送的空间申请请求之后,所述方法还包括:
当所述第一空闲空间中的连续空间对应的空间量大于等于所述请求空间量时,从所述第一空闲空间中,确定空间量大于等于所述请求空间量的连续空间,得到第一分配空间;
所述内存池组件将所述第一分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述第一分配空间实现所述目标功能组件的运行。
8.根据权利要求6所述的方法,其特征在于,所述当第一空闲空间中的连续空间对应的空间量小于所述请求空间量时,所述内存池组件向内存系统申请空间之后,所述方法还包括:
所述内存池组件获取所述内存系统发送的所述空间分配成功事件;所述空间分配成功事件包括空间地址信息;
所述内存池组件缓存所述空间地址信息对应的初始分配空间;所述初始分配空间对应的空间量大于等于所述请求空间量;
从缓存的所述初始分配空间结合所述第一空闲空间组成的连续空间中,确定空间量大于等于所述请求空间量的第二分配空间;
将所述第二分配空间分配给所述目标功能组件,以使所述目标功能组件利用所述第二分配空间实现所述目标功能组件的运行。
9.一种应用的运行设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的应用的运行方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至8任一项所述的应用的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010465670.6A CN111638956A (zh) | 2020-05-28 | 2020-05-28 | 一种应用的运行方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010465670.6A CN111638956A (zh) | 2020-05-28 | 2020-05-28 | 一种应用的运行方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111638956A true CN111638956A (zh) | 2020-09-08 |
Family
ID=72331161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010465670.6A Pending CN111638956A (zh) | 2020-05-28 | 2020-05-28 | 一种应用的运行方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111638956A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360283A (zh) * | 2021-06-03 | 2021-09-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种点播sdk文件存储方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
CN105446814A (zh) * | 2014-09-30 | 2016-03-30 | 青岛海信移动通信技术股份有限公司 | 一种缓存回收方法和装置 |
CN105760228A (zh) * | 2016-01-29 | 2016-07-13 | 珠海汇迪科技有限公司 | 低内存安卓设备下提高游戏流畅度的方法 |
CN109117274A (zh) * | 2018-08-28 | 2019-01-01 | Oppo广东移动通信有限公司 | 应用于浏览器的内存管理方法、装置、终端及存储介质 |
CN110110262A (zh) * | 2019-05-07 | 2019-08-09 | 海信电子科技(深圳)有限公司 | 浏览器内存管理方法、装置和设备 |
US20190339885A1 (en) * | 2018-05-07 | 2019-11-07 | Apple Inc. | Techniques for managing memory allocation within a storage device to improve operation of a camera application |
-
2020
- 2020-05-28 CN CN202010465670.6A patent/CN111638956A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1996258A (zh) * | 2006-12-28 | 2007-07-11 | 武汉虹旭信息技术有限责任公司 | 一种动态内存池的实现方法 |
CN105446814A (zh) * | 2014-09-30 | 2016-03-30 | 青岛海信移动通信技术股份有限公司 | 一种缓存回收方法和装置 |
CN105760228A (zh) * | 2016-01-29 | 2016-07-13 | 珠海汇迪科技有限公司 | 低内存安卓设备下提高游戏流畅度的方法 |
US20190339885A1 (en) * | 2018-05-07 | 2019-11-07 | Apple Inc. | Techniques for managing memory allocation within a storage device to improve operation of a camera application |
CN109117274A (zh) * | 2018-08-28 | 2019-01-01 | Oppo广东移动通信有限公司 | 应用于浏览器的内存管理方法、装置、终端及存储介质 |
CN110110262A (zh) * | 2019-05-07 | 2019-08-09 | 海信电子科技(深圳)有限公司 | 浏览器内存管理方法、装置和设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113360283A (zh) * | 2021-06-03 | 2021-09-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种点播sdk文件存储方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170208052A1 (en) | Hybrid cloud file system and cloud based storage system having such file system therein | |
US20190140902A1 (en) | Centralized configuration data in a distributed file system | |
JP6626528B2 (ja) | モバイルクラウドシステム、その動作方法、およびクラウドサーバ | |
CN112860479A (zh) | 存储数据的方法及云数据中心 | |
WO2018157716A1 (zh) | 一种智能卡 | |
US11347413B2 (en) | Opportunistic storage service | |
CN110851802A (zh) | 权限控制方法、装置、设备及计算机可读介质 | |
CN105678183A (zh) | 一种智能终端的用户数据管理方法及装置 | |
JP4094560B2 (ja) | リソース分割サーバ及びリソース分割サーバプログラム | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
US9870166B2 (en) | Securely sharing cached data | |
US20150134861A1 (en) | Personal cloud storage chain service system and method | |
CN113271364B (zh) | 服务编排数据的共享系统、方法、计算机设备及存储介质 | |
CN110989934A (zh) | 区块链节点数据存储方法、区块链系统及区块链节点 | |
CN111638956A (zh) | 一种应用的运行方法、设备及存储介质 | |
CN110442601A (zh) | 一种Openstack镜像数据并行加速的方法和装置 | |
CN116069493A (zh) | 一种数据处理方法、装置、设备以及可读存储介质 | |
CN113010498A (zh) | 一种数据同步方法、装置、计算机设备及存储介质 | |
CN112711469A (zh) | 云主机迁移方法、装置、计算机设备和存储介质 | |
CN115221156A (zh) | 数据库集群扩容方法、装置、计算机设备和存储介质 | |
KR101638689B1 (ko) | 클라이언트 단말에 대한 사용자 맞춤형 동기화 서비스 제공 방법 및 시스템 | |
WO2023016414A1 (zh) | 凭据的轮转方法、计算设备及存储介质 | |
WO2020187008A1 (zh) | 服务调用控制方法、服务调用方法、装置及终端 | |
CN113568881A (zh) | 一种实现读写共享的方法、系统、设备及介质 | |
US11121981B1 (en) | Optimistically granting permission to host computing resources |
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 |