CN106933670B - 一种动态管理应用程序内存的方法 - Google Patents
一种动态管理应用程序内存的方法 Download PDFInfo
- Publication number
- CN106933670B CN106933670B CN201511018399.7A CN201511018399A CN106933670B CN 106933670 B CN106933670 B CN 106933670B CN 201511018399 A CN201511018399 A CN 201511018399A CN 106933670 B CN106933670 B CN 106933670B
- Authority
- CN
- China
- Prior art keywords
- memory
- application program
- functional module
- additional
- dynamic
- 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/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
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种动态管理应用程序内存的方法,通过为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存,应用程序启动后,各功能模块获取各自的最小内存配额,当应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存;各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存,回归动态内存,再次给其他有需求的模块使用。本发明确保了各模块在保证能够正常运行的情况下最大化利用所有的可用内存,提升内存的使用效率,通过对内存的动态管理,优化软件的运行效率。
Description
技术领域
本发明属于计算机软件管理领域,具体涉及一种动态管理应用程序内存的方法。
背景技术
随着计算机技术的不断发展,各种应用程序也应运而生。而大量的应用程序在同一台电脑上应用,PC内存的管理及分配会影响到应用程序的运行速度及效率,电脑的内存如何在众多的应用程序间进行分配,以及同一个应用程序的各模块间如何合理的使用内存,则成为一个重中之重的问题。
现有技术中,大多采用内存池的方式管理内存。这种方式只针对整个软件的内存使用进行管理,在软件运行过程中无法有效控制各功能模块的内存使用,各模块会争抢可用内存,极端情况下会造成某些模块无内存可用及死锁的状况。还有一种内存管理方式,为各模块划分固定内存,这种方式在软件实际运行过程中会造成某些模块内存未使用,而另一些模块无内存可用的状况,实际内存使用效率较低。
发明内容
本发明实施例的目的是提供一种动态管理应用程序内存的方法,控制应用程序各模块内存使用量,并进行内存动态管理,使各模块在不影响其他模块正常运行的情况下最大化利用可分配内存,从而优化软件的运行效率。
根据本发明的一个方面,提供了一种动态管理应用程序内存的方法,所述方法包括:
为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存;
应用程序启动后,各功能模块获取各自的最小内存配额;
应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存;
各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存。
上述方案中,所述方法还包括:为所述应用程序分配最大可用内存,所述最大可用内存为所述各功能模块最小内存配额和应用程序动态内存之和。
上述方案中,所述应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存,进一步为:
所述各功能模块首先使用最小内存配额运行;
当业务增加时,各功能模块根据自身需要按预设算法计算附加内存;
当所述附加内存大于所述动态内存时,返回内存不足的提醒信息;
当所述附加内存小于所述动态内存时,申请附加内存,继续业务流程。
上述方案中,所述各功能模块根据自身需要按预设算法计算附加内存进一步为:
当各功能模块运行速率超过各自预设阈值时,启动附加内存算法,计算当前业务流程下所需的内存;
用所计算的所需内存,减去最小内存配额,得到附加内存。
上述方案中,所述方法还包括:
所述被释放的附加内存回归所述动态内存中。从以上技术方案可以看出,本发明实施例的动态管理应用程序内存的方法,通过为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存,应用程序启动后,各功能模块获取各自的最小内存配额,当应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存;各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存,回归动态内存,再次给其他有需求的模块使用。本发明确保了各模块在保证能够正常运行的情况下最大化利用所有的可用内存,提升内存的使用效率,通过对内存的动态管理,优化软件的运行效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施方式的动态管理应用程序内存的方法的流程示意图;
图2为本发明具体实施例的动态管理应用程序内存的方法流程图。
具体实施方式
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面详细描述本发明的实施方式,通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下面通过具体的实施方式对本发明作进一步说明。
图1为本发明实施方式的动态管理应用程序内存的方法的流程示意图。
如图1所示,本实施方式的动态管理应用程序内存的方法,包括如下步骤:
步骤S1,为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存。
在本步骤之前,所述方法还可以包括:为所述应用程序分配最大可用内存。
这里的最大可用内存为所述各功能模块最小内存配额和应用程序动态内存之和。
步骤S2,应用程序启动后,各功能模块获取各自的最小内存配额。
步骤S3,应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存。
本步骤中申请附加内存,进一步包括:
所述各功能模块首先使用最小内存配额运行;
当业务增加时,各功能模块根据自身需要按预设算法计算附加内存;
当所述附加内存大于所述动态内存时,返回内存不足预警信息;
当所述附加内存小于所述动态内存时,申请附加内存,继续业务流程。
优选的,上述计算附加内存的过程可以为:
当各功能模块运行速率超过各自预设阈值时,启动附加内存算法,计算当前业务流程下所需的内存;
用所计算的所需内存,减去最小内存配额,得到附加内存。
步骤S4,各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存。
优选的,所述方法还包括:所述被释放的附加内存回归所述动态内存中。
下面通过一个具体的实施例对本发明作详细的说明。
图2为本发明具体实施例的动态管理应用程序内存的方法流程图。
如图2所示,本实施例的动态管理应用程序 内存的方法,包括如下步骤:
步骤S201,为所述应用程序分配最大可用内存。这里的最大可用内存数量,可以为绝对数值也可以为百分比值。
步骤S202,为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存。所述各功能模块最小内存配额和应用程序动态内存的总和为所述应用程序的最大可用内存。这里的最小内存配额和/或动态内存,可以为绝对数值也可以为百分比值。
步骤S203,应用程序启动后,各功能模块获取各自的最小内存配额。
步骤S204,应用程序业务流程启动后,各功能模块首先使用最小内存配额运行。
步骤S205,当业务增加时,当各功能模块运行速率超过各自预设阈值时,启动附加内存算法。
步骤S206,计算当前业务流程下所需的内存。
步骤S207,用所计算的所需内存,减去最小内存配额,得到附加内存。
步骤S208,判断附加内存是否小于动态内存;当附加内存小于动态内存时,执行步骤S210;当附加内存不小于所述动态内存时,执行步骤S209。
步骤S209,返回内存不足的提醒信息。
步骤S210,申请附加内存。
步骤S211,同时利用最小内存配额和申请的附加内存,继续完成自身功能模块的业务流程。
步骤S212,各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存。所述被释放的附加内存回归所述动态内存中。
当业务流程完成无新的业务流程存在时,则结束程序。当有新的业务流程时,则继续执行步骤S204。
由此可见,本实施例动态管理应用程序内存的方法,为软件的每个功能模块设定一个最低配额(MinMem)保证各模块能正常运行,而最大可用内存数量(MaxMem)减去所有模块的最低配额之和,剩下的内存为动态分配的内存用量(ReservedMem),各模块可根据自己的业务需求按特定算法申请这部分内存进行使用,使用完毕立即释放,再次给其他有需求的模块使用。因此通过以上的方法,确保了各模块在保证能够正常运行的情况下最大化利用所有的可用内存,提升内存的使用效率。
本实施例的动态管理应用程序内存的方法,通过为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存,应用程序启动后,各功能模块获取各自的最小内存配额,当应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存;各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存,回归动态内存,再次给其他有需求的模块使用。本发明确保了各模块在保证能够正常运行的情况下最大化利用所有的可用内存,提升内存的使用效率,通过对内存的动态管理,优化软件的运行效率。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种动态管理应用程序内存的方法,其特征在于,所述方法包括:
为所述应用程序各功能模块分配最小内存配额,同时为所述应用程序分配动态内存;
应用程序启动后,各功能模块获取各自的最小内存配额;
应用程序业务流程启动后,各功能模块从所述动态内存中申请附加内存;所述各功能模块首先使用最小内存配额运行;
当业务增加时,各功能模块根据自身需要按预设算法计算附加内存;
当所述附加内存大于所述动态内存时,返回内存不足的提醒信息;
当所述附加内存小于所述动态内存时,申请附加内存,继续业务流程;
各功能模块完成自身业务流程后,释放从所述动态内存中申请的附加内存。
2.根据权利要求1所述的动态管理应用程序内存方法,其特征在于,所述方法还包括:为所述应用程序分配最大可用内存,所述最大可用内存为所述各功能模块最小内存配额和应用程序动态内存之和。
3.根据权利要求1所述的动态管理应用程序内存的方法,其特征在于,所述各功能模块根据自身需要按预设算法计算附加内存进一步为:
当各功能模块运行速率超过各自预设阈值时,启动附加内存算法,计算当前业务流程下所需的内存;
用所计算的所需内存,减去最小内存配额,得到附加内存。
4.根据权利要求1至3任一项所述的动态管理应用程序内存的方法,其特征在于,所述方法还包括:
被释放的附加内存回归所述动态内存中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018399.7A CN106933670B (zh) | 2015-12-29 | 2015-12-29 | 一种动态管理应用程序内存的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201511018399.7A CN106933670B (zh) | 2015-12-29 | 2015-12-29 | 一种动态管理应用程序内存的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106933670A CN106933670A (zh) | 2017-07-07 |
CN106933670B true CN106933670B (zh) | 2022-01-25 |
Family
ID=59441359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201511018399.7A Active CN106933670B (zh) | 2015-12-29 | 2015-12-29 | 一种动态管理应用程序内存的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106933670B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134454B (zh) * | 2018-02-09 | 2022-06-14 | 聚好看科技股份有限公司 | 一种启动应用程序的方法及其装置 |
CN108965348B (zh) * | 2018-10-12 | 2021-02-19 | 深圳前海微众银行股份有限公司 | 网络安全防护方法、设备及计算机可读存储介质 |
CN110647397B (zh) * | 2019-09-16 | 2022-06-03 | 北京方研矩行科技有限公司 | 一种基于块内存的内存总量动态控制方法及系统 |
CN115668144A (zh) * | 2020-05-22 | 2023-01-31 | 华为技术有限公司 | 动态管理共享内存池的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101937402A (zh) * | 2010-09-08 | 2011-01-05 | 无锡中星微电子有限公司 | 内存管理方法 |
CN102662850A (zh) * | 2012-03-30 | 2012-09-12 | 杭州华三通信技术有限公司 | 一种内存管理方法及其系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8788855B2 (en) * | 2011-09-23 | 2014-07-22 | Microsoft Corporation | Cluster computational capacity level switching based on demand prediction and stability constraint and power consumption management |
-
2015
- 2015-12-29 CN CN201511018399.7A patent/CN106933670B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221536A (zh) * | 2008-01-25 | 2008-07-16 | 中兴通讯股份有限公司 | 嵌入式系统的内存管理方法及装置 |
CN101937402A (zh) * | 2010-09-08 | 2011-01-05 | 无锡中星微电子有限公司 | 内存管理方法 |
CN102662850A (zh) * | 2012-03-30 | 2012-09-12 | 杭州华三通信技术有限公司 | 一种内存管理方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN106933670A (zh) | 2017-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933670B (zh) | 一种动态管理应用程序内存的方法 | |
CN109005125B (zh) | 动态限流方法、装置及系统 | |
EP3129880B1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
CN108052384B (zh) | 一种任务处理方法、服务平台及电子设备 | |
WO2017166643A1 (zh) | 一种任务资源的量化方法和装置 | |
ES2837048T3 (es) | Método y sistema para asignar recursos a consumidores de recursos en un entorno informático en la nube | |
CN106020967B (zh) | 一种混合式云资源自动扩容方法 | |
KR20160132432A (ko) | 멀티 프로세스 애플리케이션들을 위한 동적 자원 관리 | |
CN107273182B (zh) | 一种虚拟机资源动态扩充方法及系统 | |
EP2961136A1 (en) | An apparatus, method and system for dynamic allocation of shared cloud-based resources | |
CN104838369A (zh) | 云计算基础设施的动态管理 | |
CN105468458A (zh) | 计算机集群的资源调度方法及系统 | |
CN102520887A (zh) | 一种应用于云计算的存储空间配置与管理方法 | |
CN113037794A (zh) | 计算资源配置调度方法、装置及系统 | |
CN107239347B (zh) | 一种虚拟化场景下的设备资源分配方法和装置 | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
CN111190739A (zh) | 一种资源分配方法、装置、电子设备及存储介质 | |
CN111104219A (zh) | 虚拟核心与物理核心的绑定方法、装置、设备及存储介质 | |
CN104301257A (zh) | 一种资源分配方法、装置及设备 | |
CN113347249A (zh) | 一种作业加载方法、装置及设备 | |
CN112398892B (zh) | 服务分配方法、装置及设备 | |
CN104657216A (zh) | 一种资源池的资源分配方法及装置 | |
CN108876446B (zh) | 消费资源分配方法、装置和设备 | |
US20160139940A1 (en) | Systems and methods for creating virtual machine |
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 |