CN109426565B - 一种内存分配方法、装置及终端 - Google Patents
一种内存分配方法、装置及终端 Download PDFInfo
- Publication number
- CN109426565B CN109426565B CN201710791005.4A CN201710791005A CN109426565B CN 109426565 B CN109426565 B CN 109426565B CN 201710791005 A CN201710791005 A CN 201710791005A CN 109426565 B CN109426565 B CN 109426565B
- Authority
- CN
- China
- Prior art keywords
- memory value
- value
- target memory
- application
- allocated
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000001514 detection method Methods 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 3
- 239000002699 waste material Substances 0.000 abstract description 3
- 230000000694 effects Effects 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
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 (AREA)
- Power Sources (AREA)
Abstract
本发明提供了一种内存分配方法、装置及终端,涉及内存分配领域,用于解决现有技术中无法对根据应用实际使用情况对内存进行动态分配的问题,本发明实施例中的内存分配方法包括:获取应用在当次运行时被分配的目标内存值和实际需要占用的最大内存值;根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值。本发明上述方案,达到了根据应用实际使用情况,对内存进行动态分配,提高用户试验,避免内存浪费的效果。
Description
技术领域
本发明涉及内存分配领域,尤其是一种内存分配方法、装置及终端。
背景技术
目前的个性化推荐算法已经广泛应用在电子商务等领域,且运用的也已经比较成熟,比如当用户进行购买过或者浏览过某一商品的时候,***会根据用户的行为,进行预测,给用户推荐一定的商品或者推荐一些类似的店铺,给用户更多的选择,让用户拥有更好的体验。
现有的内存分配是,给应用一预先设定的初始值,应用每次运行时,分配给应用的内存值均为该初始值,当在应用运行过程中,若分配的内存不足以满足应用需求的时候,再对应用进行分配,直到满足应用的需求为止,若超过了规定的最大值,则出现内存溢出。该种手段存在的问题在于,在对应用分配初始值之后,若应用在实际使用过程中的需求内存远远低于该初始值,此时,分配给应用的内存仍然为该初始值,则会出现内存浪费,在同时打开多个应用时,会出现部分应用无内存可用的情况。并且,在应用运行过程中,若分配的初始内存无法满足应用的需求,再对应用重新分配内存的方式,会使得应用在运行过程中出现卡顿的情况,使得用户体验差。
也即,现有技术中的内存分配方式无法达到根据应用实际使用情况,对内存进行动态分配,且用户体验较差。
发明内容
本发明实施例要解决的技术问题是提供一种内存分配方法、装置及终端,用以实现根据应用实际使用情况,对内存进行动态分配,提高用户试验。
为解决上述技术问题,本发明实施例提供的内存分配方法,包括:
获取应用在当次运行时被分配的目标内存值和实际需要占用的最大内存值;
根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值。
优选地,获取应用在当次运行时被分配的目标内存值的步骤包括:
获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值。
优选地,获取应用在当次运行时被分配的目标内存值的步骤还包括:
在应用再次运行时,判断所述应用在当次运行前是否被卸载过;
若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值。
优选地,按照第一预设方式获取所述应用在当次运行时被分配的目标内存值的步骤包括:
获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值。
优选地,根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值的步骤包括:
根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
优选地,根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值的步骤包括:
通过公式:
获得第二目标内存值A″n,其中,A′n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
优选地,根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值的步骤包括:
若所述最大内存值小于或等于所述第一预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
若所述最大内存值大于所述第一预设值,则将所述第一预设值确定为所述应用在下次运行时需要被分配的目标内存值。
优选地,根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值的步骤包括:
若所述目应用在当次运行时被分配的目标内存值大于或等于所述最大内存值,则将所述应用在当次运行时被分配的目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
若所述应用在当次运行时被分配的目标内存值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
根据本发明的另一方面,本发明实施例还提供了一种内存分配装置,包括:
获取模块,用于获取应用在当次运行时被分配的目标内存值和所述应用在当次运行时实际需要占用的最大内存值;
确定模块,用于根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值。
优选地,获取模块包括:
第一获取单元,用于获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值。
优选地,获取模块还包括:
判断单元,用于在应用再次运行时,判断所述应用在当次运行前是否被卸载过;
第二获取单元,用于若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值。
优选地,第二获取单元包括:
第一获取子单元,用于获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
第二获取子单元,用于根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值。
优选地,第二获取子单元包括:
第一获取一级子单元,用于根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
第一确定一级子单元,用于若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
第二确定一级子单元,用于若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
优选地,第一获取一级子单元包括:
通过公式:
获得第二目标内存值A″n,其中,A′n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
优选地,确定模块包括:
第一确定单元,用于若所述最大内存值小于或等于第一预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
第二确定单元,用于若所述最大内存值大于所述第一预设值,则将所述第一预设值确定为所述应用在下次运行时需要被分配的目标内存值。
优选地,第一确定单元包括:
第一确定子单元,用于若所述应用在当次运行时被分配的目标内存值大于或等于所述最大内存值,则将所述应用在当次运行时被分配的目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
第二确定子单元,用于若所述应用在当次运行时被分配的目标内存值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
根据本发明的另一方面,本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现上述的内存分配方法。
与现有技术相比,本发明实施例提供的内存分配方法、装置及终端,至少具有以下有益效果:
通过应用在当次运行过程时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定应用在下次运行时需要被分配的目标内存值。实现了根据应用的实际使用情况,对应用所需内存进行动态以及合理分配,使得用户在打开应用时感受到应用响应速度快,终端使用流畅,提高用户体验。
附图说明
图1为本发明实施例所述的内存分配方法的流程示意图;
图2为本发明实施例中步骤1的流程示意图;
图3为本发明实施例中步骤14的流程示意图;
图4为本发明实施例中步骤142的流程示意图;
图5为本发明实施例中步骤2的流程示意图;
图6为本发明实施例中步骤22的流程示意图;
图7为本发明实施例内存分配装置的结构示意图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
参照图1,本发明实施例提供了一种内存分配方法,包括:
步骤1,获取应用在当次运行时被分配的目标内存值和实际需要占用的最大内存值。
步骤2,根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值。
应用在当次实际需要占用的最大内存值是根据用户对应用使用过程中,基于用户的使用行为产生的需求内存。根据用户对应用的操作的不同,应用在当次运行时所实际需要占用的最大内存值也不相同。第一预设值为***限制的应用所能分配的最大内存限值,对于多个应用来说,第一预设值的数值相同。
具体地,应用在首次运行和非首次运行时被分配的目标内存值是不同的,非首次运行包括应用未被卸载过的非首次运行和应用被卸载过的非首次运行的两种情况。参照图2,对应用在当次运行时被分配的目标内存值的确定具体包括:
步骤11,判断应用是否为首次运行。
步骤12,若为,则获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值。
步骤13,若不为,则在应用再次运行时,判断所述应用在当次运行前是否被卸载过。
步骤14,若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值。
在发明实施例中,多个应用在首次运行时被分配的初始值均为第二预设值。若应用未被卸载过,对应用在当次运行时的目标内存值的确定,则是通过步骤2中记载的方式进行获取的。
具体地,参照图3,步骤14包括:
步骤141,获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
步骤142,根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值。
在应用被卸载后,以预设时间间隔(例如3天)周期性的检测应用是否被重新安装,每检测一次且检测到应用未被重新安装,对检测次数的总数进行累加一次。对于第一目标内存值的获取是通过步骤2中记载的方式进行获取的。优选地,参照图4,步骤142包括:
步骤1421,根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
步骤1422,判断所述第二目标值是否大于或等于所述第二预设值;
步骤1423,若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
步骤1424,若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
优选地,步骤1421包括:
通过公式:
获得第二目标内存值A″n,其中,A′n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
优选地,参照图5,步骤2包括:
步骤21,判断所述最大内存值是否小于或等于所述第一预设值;
步骤22,若所述最大内存值小于或等于所述第一预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
步骤23,若所述最大内存值大于所述第一预设值,则将所述第一预设值确定为所述应用在下次运行时需要被分配的目标内存值。
将应用在当次运行时实际需要占用的最大内存值与第一预设值进行比较的目的在于,防止分配给应用的内存出现内存溢出的情况。
在步骤22中,还隐含包括有应用当次运行时被分配的目标内存值小于或等于第一预设值,在当次的次数为第一次时,当次运行时被分配的目标内存值为第二预设值,前述步骤中已经确定出第二预设值小于第一预设值;在当次的次数为第一次之后的次数(例如第二次),根据前述步骤确定出的应用在当次运行时被分配的目标内存值始终小于或等于第一预设值。
优选地,参照图6,步骤22包括:
步骤221,判断所述应用在当次运行时被分配的目标内存值是否大于或等于所述目标内存值;
步骤222,若所述应用在当次运行时被分配的目标内存值大于或等于所述最大内存值,则将所述应用在当次运行时被分配的目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
步骤223,若所述应用在当次运行时被分配的目标内存值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
以三个事例对本发明的上述方法进行说明。
假设应用在首次运行时被分配的初始内存值(第二预设值)为16M,实际需要占用的最大内存值为34M,第一预设值为100M。假设在第二次运行时,应用未被卸载,在此时,将24M确定为应用在第二次运行时的目标内存值。若应用在第二次运行时被卸载过,则在应用卸载时刻起以3天为预设时间间隔检测应用是否被重新安装,若在第一次检测时确定应用被重新安装,则应用在被重新安装后的首次(总次数为第二次)运行时的目标内存值为根据应用在第一次运行时被分配的目标内存值(16M)、实际需要占用的最大内存值(24M)确定出第一目标内存值为24M,进而获得第二目标内存值为12M,由于第二目标内存值(12M)小于第二预设值(16M),则在应用被重新安装后的首次运行时的目标内存值为第二预设值(16M)。并且,在此种情况下,无论应用在第几次检测时被重新安装,应用在被重新安装后的首次运行时的目标内存值均为16M。
假设应用在首次运行时被分配的初始内存值(第一预设值)为16M,实际需要占用的最大内存值为12M,第二预设值为100M。假设在第二次运行时,应用未被卸载,则将16M确定为应用在第二次运行时的目标运行值;若应用在第二次运行时被卸载过,则在应用卸载时刻起以3天为预设时间间隔检测应用是否被重新安装,若在第一次检测时确定应用被重新安装,则应用在被重新安装后的首次(总次数为第二次)运行时的目标内存值为根据应用在第一次运行时被分配的目标内存值(16M)、实际需要占用的最大内存值(24M)确定出第一目标内存值为24M,进而获得第二目标内存值为12M,由于第二目标内存值(12M)小于第二预设值(16M),则在应用被重新安装后的首次运行时的目标内存值为第二预设值(16M);并且,在此种情况下,无论应用在第几次检测时被重新安装,应用在被重新安装后的首次运行时的目标内存值均为16M。
假设应用在首次运行时被分配的初始内存值(第一预设值)为16M,实际需要占用的最大内存值为48M,第二预设值为100M。假设在第二次运行时,应用未被卸载,则将48M确定为应用在第二次运行时的目标运行值;若应用在第二次运行时被卸载过,则在应用卸载时刻起以3天为预设时间间隔检测应用是否被重新安装,若在第一次检测时确定应用被重新安装,则应用在被重新安装后的首次(总次数为第二次)运行时的目标内存值为根据应用在第一次运行时被分配的目标内存值(48M)、实际需要占用的最大内存值(48M)确定出第一目标内存值为48M,进而获得第二目标内存值为24M,由于第二目标内存值(24M)大于第二预设值(16M),则在应用被重新安装后的首次运行时的目标内存值为第二目标内存值(24M)。若在第二次检测时确定应用被重新安装,则肯定上述步骤可以确定出此状态下应用被重新安装后首次运行时的目标内存值为16M,并且,在此种情况下,无论应用在第二次以后的任意一次检测时确定被重新安装,应用在被重新安装后的首次运行时的目标内存值均为16M。
通过本发明实施例提供的内存分配方法,根据应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,提前确定出应用在下次运行时所需要分配的目标内存值,使得应用每次运行时均能流畅的运行,提高了用户体验,同时,实现了根据应用需要,对内存进行合理的分配,防止造成分配的内存未被完全利用,导致浪费,并导致其它应用被分配的内存较少,出现卡顿的情况。
参照图7,根据本发明的另一方面,本发明实施例还提供了一种内存分配装置,包括:
获取模块1,用于获取应用在当次运行时被分配的目标内存值和所述应用在当次运行时实际需要占用的最大内存值;
确定模块2,用于根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值。
优选地,获取模块包括:
第一获取单元,用于获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值。
优选地,获取模块还包括:
判断单元,用于在应用再次运行时,判断所述应用在当次运行前是否被卸载过;
第二获取单元,用于若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值。
优选地,第二获取单元包括:
第一获取子单元,用于获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
第二获取子单元,用于根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值。
优选地,第二获取子单元包括:
第一获取一级子单元,用于根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
第一确定一级子单元,用于若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
第二确定一级子单元,用于若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
优选地,第一获取一级子单元包括:
通过公式:
获得第二目标内存值A″n,其中,A′n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
优选地,确定模块包括:
第一确定单元,用于若所述最大内存值小于或等于第二预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
第二确定单元,用于若所述最大内存值大于所述第一预设值,则将所述第二预设值确定为所述应用在下次运行时需要被分配的目标内存值。
优选地,第一确定单元包括:
第一获取子单元,用于若所述目标内存值大于或等于所述最大内存值,则将所述目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
第二确定子单元,用于若所述目标值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
本发明实施例提供的内存分配装置,是与上述方法对应的装置,上述方法中的所有实现方式均适用于该装置的实施例中,也能达到相同的技术效果。实现了根据应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,动态预测应用在下次运行时被分配的目标内存值,实现了对内存进行合理分配,提高了用户体验,避免了内存浪费。
根据本发明的另一方面,本发明实施例还提供了一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;所述处理器执行所述程序时实现上述的内存分配方法。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (11)
1.一种内存分配方法,其特征在于,包括:
获取应用在当次运行时被分配的目标内存值和实际需要占用的最大内存值;
根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值;
其中,所述获取应用在当次运行时被分配的目标内存值的步骤包括:
获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值;
在应用再次运行时,判断所述应用在当次运行前是否被卸载过;
若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值;
其中,所述根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值,包括:判断所述最大内存值是否小于或者等于所述第一预设值;
其中,所述按照第一预设方式获取所述应用在当次运行时被分配的目标内存值的步骤包括:
获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
根据所述第一目标内存值和所述检测周期总数确定的目标内存值与第二预设值的大小关系,获得所述应用在当次运行时被分配的目标内存值。
2.根据权利要求1所述的内存分配方法,其特征在于,根据所述第一目标内存值和所述检测周期总数确定的目标内存值与第二预设值的大小关系,获得所述应用在当次运行时被分配的目标内存值的步骤包括:
根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
3.根据权利要求2所述的内存分配方法,其特征在于,根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值的步骤包括:
通过公式:
获得第二目标内存值A″n,其中,A′ n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
4.根据权利要求1所述的内存分配方法,其特征在于,根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值的步骤包括:
若所述最大内存值小于或等于所述第一预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
若所述最大内存值大于所述第一预设值,则将所述第一预设值确定为所述应用在下次运行时需要被分配的目标内存值。
5.根据权利要求4所述的内存分配方法,其特征在于,根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值的步骤包括:
若所述应用在当次运行时被分配的目标内存值大于或等于所述最大内存值,则将所述目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
若所述应用在当次运行时被分配的目标内存值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
6.一种内存分配装置,其特征在于,包括:
获取模块,用于获取应用在当次运行时被分配的目标内存值和所述应用在当次运行时实际需要占用的最大内存值;
确定模块,用于根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值,
其中,所述获取模块还包括:
第一获取单元,用于获取应用在首次运行时被分配的值为第二预设值的目标内存值,所述第二预设值小于所述第一预设值;
判断单元,用于在应用再次运行时,判断所述应用在当次运行前是否被卸载过;
第二获取单元,用于若被卸载过,则按照第一预设方式获取所述应用在当次运行时被分配的目标内存值;
其中,所述根据所述应用在当次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值,确定所述应用在下次运行时需要被分配的目标内存值,包括:判断所述最大内存值是否小于或者等于所述第一预设值;
其中,所述第二获取单元包括:
第一获取子单元,用于获取根据所述应用被卸载前的最近一次运行时被分配的目标内存值、实际需要占用的最大内存值和第一预设值所确定出的第一目标内存值,以及在所述应用被卸载时刻至所述应用被重新安装时刻之间的检测周期总数,所述检测周期总数为周期性检测所述应用是否被重新安装的总次数;
第二获取子单元,用于根据所述第一目标内存值和所述检测周期总数,获得所述应用在当次运行时被分配的目标内存值。
7.根据权利要求6所述的内存分配装置,其特征在于,第二获取子单元包括:
第一获取一级子单元,用于根据所述第一目标内存值和所述检测周期总数,获得一第二目标内存值;
第一确定一级子单元,用于若所述第二目标内存值大于或等于所述第二预设值,则将所述第二目标内存值确定为所述应用在当次运行时被分配的目标内存值;
第二确定一级子单元,用于若所述第二目标内存值小于所述第二预设值,则将所述第二预设值确定为所述应用在当次运行时被分配的目标内存值。
8.根据权利要求7所述的内存分配装置,其特征在于,第一获取一级子单元包括:
通过公式:
获得第二目标内存值A″n,其中,A′ n为所述第一目标内存值,m为所述检测周期总数,n为当前次的排序数。
9.根据权利要求6所述的内存分配装置,其特征在于,确定模块包括:
第一确定单元,用于若所述最大内存值小于或等于第一预设值,则根据所述应用在当次运行时被分配的目标内存值和所述最大内存值,确定所述应用在下次运行时需要被分配的目标内存值;
第二确定单元,用于若所述最大内存值大于所述第一预设值,则将所述第一预设值确定为所述应用在下次运行时需要被分配的目标内存值。
10.根据权利要求9所述的内存分配装置,其特征在于,第一确定单元包括:
第一确定子单元,用于若所述应用在当次运行时被分配的目标内存值大于或等于所述最大内存值,则将所述目标内存值确定为所述应用在下次运行时需要被分配的目标内存值;
第二确定子单元,用于若所述应用在当次运行时被分配的目标内存值小于所述最大内存值,则将所述最大内存值确定为所述应用在下次运行时需要被分配的目标内存值。
11.一种终端,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序;其特征在于,所述处理器执行所述程序时实现如权利要求1至5任一项所述的内存分配方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791005.4A CN109426565B (zh) | 2017-09-05 | 2017-09-05 | 一种内存分配方法、装置及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710791005.4A CN109426565B (zh) | 2017-09-05 | 2017-09-05 | 一种内存分配方法、装置及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109426565A CN109426565A (zh) | 2019-03-05 |
CN109426565B true CN109426565B (zh) | 2024-01-02 |
Family
ID=65514110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710791005.4A Active CN109426565B (zh) | 2017-09-05 | 2017-09-05 | 一种内存分配方法、装置及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109426565B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112685371A (zh) * | 2020-12-30 | 2021-04-20 | 江苏达科信息科技有限公司 | 基于大数据的文件存储空间分配方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420903A (zh) * | 2011-11-28 | 2012-04-18 | 惠州Tcl移动通信有限公司 | 一种基于手机的软件处理方法及手机 |
CN104077266A (zh) * | 2013-03-27 | 2014-10-01 | 华为技术有限公司 | 多内核操作***实现方法和实现装置及*** |
CN105302738A (zh) * | 2015-12-09 | 2016-02-03 | 北京东土科技股份有限公司 | 一种内存分配方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110153978A1 (en) * | 2009-12-21 | 2011-06-23 | International Business Machines Corporation | Predictive Page Allocation for Virtual Memory System |
-
2017
- 2017-09-05 CN CN201710791005.4A patent/CN109426565B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102420903A (zh) * | 2011-11-28 | 2012-04-18 | 惠州Tcl移动通信有限公司 | 一种基于手机的软件处理方法及手机 |
CN104077266A (zh) * | 2013-03-27 | 2014-10-01 | 华为技术有限公司 | 多内核操作***实现方法和实现装置及*** |
CN105302738A (zh) * | 2015-12-09 | 2016-02-03 | 北京东土科技股份有限公司 | 一种内存分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109426565A (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108462760B (zh) | 电子装置、集群访问域名自动生成方法及存储介质 | |
CN107483351B (zh) | 一种限流方法及装置 | |
CN110888746B (zh) | 内存管理方法、装置、存储介质及电子设备 | |
WO2015138150A1 (en) | Dynamic resource management for multi-process applications | |
CN106020984B (zh) | 电子设备中进程的创建方法及装置 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
US8610727B1 (en) | Dynamic processing core selection for pre- and post-processing of multimedia workloads | |
CN109426565B (zh) | 一种内存分配方法、装置及终端 | |
CN113741991B (zh) | 提升ssd服务质量方法、装置、计算机设备和存储介质 | |
US10929054B2 (en) | Scalable garbage collection | |
US20150339145A1 (en) | Virtual machine service system and virtual machine service providing method thereof | |
EP3188026B1 (en) | Memory resource management method and apparatus | |
CN113703975A (zh) | 模型分配方法、装置、电子设备及计算机可读存储介质 | |
CN108733478B (zh) | 三维图像处理方法及装置 | |
CN110321179B (zh) | 一种应用程序启动方法、***、装置及计算机存储介质 | |
CN110569114B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
CN110324411B (zh) | 一种业务分流方法及装置 | |
US10698620B2 (en) | Dynamic cache allocation | |
CN111211915B (zh) | 容器的网络带宽的调节方法、计算机设备及可读存储介质 | |
US9348667B2 (en) | Apparatus for managing application program and method therefor | |
CN111859252B (zh) | 一种装卸时长的确定方法、装置、设备和存储介质 | |
CN113220429A (zh) | Java线程池的任务处理方法、装置、设备和介质 | |
CN108255417B (zh) | 数据访问方法、电子装置及可读存储介质 | |
CN108280113B (zh) | Service Worker控制方法、装置及电子终端 | |
CN111352710A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |