一种用于分配动态内存资源的方法及装置的制造方法

文档序号:10534609阅读:246来源:国知局
一种用于分配动态内存资源的方法及装置的制造方法
【专利摘要】一种用于分配动态内存资源的方法及装置,该方法包括如下步骤:获取应用程序的内存资源分配请求;判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件;如果符合,则根据内存资源分配请求分配动态内存的部分带宽;否则,为应用程序分配动态内存的全部带宽。本发明根据终端设备的需要来分配内存资源,保证智能移动终端的性能的同时,通过省去资源的浪费来节省电能,延长智能移动终端的续航时间。
【专利说明】
一种用于分配动态内存资源的方法及装置
技术领域
[0001]本发明涉及智能移动终端技术领域,具体涉及一种用于分配动态内存资源的方法及装置。
【背景技术】
[0002]现在的智能手机的性能越来越强大,但是手机的续航一直是用户体验的痛点,用户对智能机的诟病大部分都在此。在电池技术没有革命性提高之前,优化系统资源,减少系统对资源的占用,间接中就延长了电池的续航周期。其中,按需分配资源,即通过节省一些不必要的资源消耗可以节省电能,比如CPC,可以通过系统负载来动态的调节CPU的频率和个数。GPU(图形处理器)等资源也可以按需分配。
[0003]但是,现有的系统资源优化方法,并没有很全面地优化所有的资源,因此对续航时间的提升也很有限。
[0004]DRAM(Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。DRAM只能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,所以必须隔一段时间刷新(refresh)—次,如果存储单元没有被刷新,存储的信息就会丢失。

【发明内容】

[0005]因此,本发明要解决的技术问题在于现有智能移动终端通过优化系统资源来延长续航时间的方法不够完善,效果有限。
[0006]为此,本发明实施例提供了如下技术方案:
[0007]—种用于分配动态内存资源的方法,包括如下步骤:
[0008]获取应用程序的内存资源分配请求;
[0009 ]判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件;
[0010]如果符合,则根据所述内存资源分配请求分配所述动态内存的部分带宽;
[0011]否则,为所述应用程序分配所述动态内存的全部带宽。
[0012]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0013]判断是否存在请求所述动态内存的全部带宽的内存资源分配请求;
[0014]如果是,则判定不符合所述条件;
[0015]否则,判定符合所述条件。
[0016]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0017]判断所述移动设备的屏幕是否处于灭屏状态;
[0018]如果是,则判定符合所述条件;
[0019]如果否,则判断CPU的个数是否小于2,如果CPU的个数小于2,则判定不符合所述条件。
[0020]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤,还包括:
[0021]如果CPU的个数大于2,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求;
[0022]如果是,则判定不符合所述条件;
[0023]否则,判定符合所述条件。
[0024]优选地,当所述屏幕处于灭屏状态,则将用于分配的所述动态内存的带宽限制为四分之一。
[0025]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0026]当所述移动设备的屏幕处于灭屏状态时,判断是否存在亮屏指令;
[0027]如果是,则判定不符合所述条件。
[0028]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0029]判断是否开始启动所述移动设备的操作系统;
[0030]如果是,则判定不符合所述条件。
[0031]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0032]判断所述移动设备的操作系统是否启动完成;
[0033]如果是,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求;
[0034]如果是,则判定不符合所述条件;
[0035]否则,判定符合所述条件。
[0036]优选地,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0037]判断所述移动设备的操作系统是否启动完成;
[0038]如果是,则判断所述移动设备的屏幕是否处于灭屏状态;
[0039]如果是,则判定符合所述条件;
[0040]否则,则判断CPU的个数是否小于2;
[0041 ]如果CPU的个数小于2,则判定不符合所述条件;
[0042]如果CPU的个数大于2,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求;
[0043]如果是,则判定不符合所述条件;
[0044]否则,判定符合所述条件。
[0045]本发明还提供一种用于分配动态内存资源的装置,包括:
[0046]请求获取单元,用于获取应用程序的内存资源分配请求;
[0047]判断单元,用于判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件;
[0048]部分带宽分配单元,如果符合所述条件,则用于根据所述内存资源分配请求分配所述动态内存的部分带宽;
[0049]全部带宽分配单元,如果不符合所述条件,则用于为所述应用程序分配所述动态内存的全部带宽。
[0050]本发明技术方案,具有如下优点:
[0051]本发明实施例提供的用于分配动态内存资源的方法及装置,根据终端设备的需要来分配内存资源,如果终端设备需要分配全部的带宽就全部分配,否则可以只分配其中的一部分带宽,剩余的带宽资源不占用。即只有系统并不需要全部内存资源的时候才节省,从而不仅可以保证智能移动终端的性能,同时也可以延长其续航时间。与其他资源的优化分配方法一起可以大大提升省电效果,进一步延长智能移动设备终端的续航时间。
【附图说明】
[0052]为了更清楚地说明本发明【具体实施方式】或现有技术中的技术方案,下面将对【具体实施方式】或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]图1为本发明实施例1中一种用于分配动态内存资源的方法流程图;
[0054]图2为本发明实施例1中一种判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的方法流程图;
[0055]图3为本发明实施例2中一种用于分配动态内存资源的装置的原理框图。
【具体实施方式】
[0056]下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057]此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
[0058]实施例1
[0059]本实施例提供一种用于分配动态内存资源的方法,如图1所示,包括如下步骤:
[0060]S1:获取应用程序的内存资源分配请求,每个应用程序启动后都需要内存资源,不管是前台运行还是后台运行,因此就需要申请分配内存资源。
[0061]S2:判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件。内存带宽是指内存与北桥之间的每秒数据传输速度,越大越好。
[0062]S3:如果符合,则根据内存资源分配请求分配动态内存的部分带宽,具体可以一半带宽、四分之一带宽或者其他数量的带宽。
[0063]S4:否则,为应用程序分配动态内存的全部带宽。
[0064]由于现有的智能移动终端的内存资源已经很强大了,比如智能手机的动态随机存取存储器(DRAM)资源已经达到3GB甚至以上了。在移动终端的很多使用场景下并不需要全部的内存资源,而内存资源的占用与电量的消耗成正比,因此可以通过省去资源的浪费来节省电能。本实施例提供的用于分配动态内存资源的方法,即根据终端设备的需要来分配内存资源,如果终端设备需要分配全部的带宽就全部分配,否则可以只分配其中的一部分带宽,剩余的带宽资源不占用。即只有系统并不需要全部内存资源的时候才节省,从而不仅可以保证智能移动终端的性能,同时也可以延长其续航时间。与其他资源的优化分配方法一起可以大大提升省电效果,进一步延长智能移动设备终端的续航时间。
[0065]具体地,步骤S2,即判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0066]判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0067]如果是,则判定不符合条件;
[0068]否则,判定符合条件。
[0069]本实施例中将用于分配的动态内存的带宽限制为部分带宽的条件是只有所有的内存资源分配请求都只请求部分带宽的时候才将用于分配的动态内存的带宽限制为部分带宽,否则只要有一个内存资源分配请求申请的是全部带宽就不限制用于分配的带宽,以保证智能移动终端的性能,提升用户体验。
[0070]具体地,请求分配内存资源的每个应用程序都分配有一个唯一的标识,例如可以是唯一对应的编号。各个应用程序发送内存资源分配请求后,处理程序就将应用程序对应的编号插入到链表中,具体也可以根据各个应用程序的优先级从高到低按顺序插入链表中。然后就可以扫描链表并按照顺序依次分配内存资源。但是,如果有请求全部带宽的内存资源分配请求就会将其对应的编号插入到链表头,处理程序优先扫描链表头,就会取消对用于分配的内存带宽的限制。在完成资源分配后,就会删除链表上对应的编号,并接收新的请求并放入新请求对应的编号。
[0071]作为本实施方式的第一种变形,上述步骤S2,判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0072]判断移动设备的屏幕是否处于灭屏状态;
[0073]如果是,则判定符合条件,具体地,此时默认所有的内存资源分配请求都不请求全部带宽,且应用程序没有处于前台运行状态的,因此可以将用于分配的动态内存的带宽限制为四分之一,以最大限度地节省资源降低能耗,同时可以保证灭屏状态下的移动终端的各个应用的正常运行;
[0074]如果否,则判断CPU的个数是否小于2,如果CPU的个数小于2,则判定不符合条件,即此时不能限制用于分配的动态内存带宽。
[0075]并且上述步骤S2,还包括:
[0076]如果CPU的个数大于2,则判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0077]如果是,则判定不符合条件;
[0078]否则,判定符合条件。
[0079]作为本实施方式的第二种变形,上述步骤S2,即判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0080]当移动设备的屏幕处于灭屏状态时,判断是否存在亮屏指令,即是否按下亮屏按键;
[0081]如果是,则判定不符合条件。
[0082]本实施例中,在屏幕点亮过程中,为了加快屏幕点亮的速度,因此不限制用于分配的动态内存带宽。
[0083]作为本实施方式的第三种变形,上述步骤S2,即判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0084]判断是否开始启动移动设备的操作系统;
[0085]如果是,则判定不符合条件。
[0086]本实施例中,在启动移动设备的操作系统时,本来并不需要动态内存的全部带宽,但是为了加快操作系统的启动速度,因此,不限制用于分配的动态内存的带宽。
[0087]作为本实施方式的第四种变形,上述步骤S2,即判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0088]判断移动设备的操作系统是否启动完成;
[0089]如果是,则判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0090]如果是,则判定不符合条件;
[0091]否则,判定符合条件。
[0092]本实施例中,判断移动设备的操作系统是否启动完成的方法有两个:一个是,获取移动设备的操作系统启动完成指令;另一个是,判断当前时间与移动设备的操作系统的开始启动时间之间的时间间隔是否大于预设阈值,如果是则判定启动完成,否则延时预设的时间后再次判断时间间隔是否大于预设阈值,该预设阈值是通过统计该移动设备的启动时间来确定的,一般可设置为大于一般的启动时间。
[0093]作为本实施方式的第五种变形,如图2所示,上述步骤S2,即判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括:
[0094]S21:判断移动设备的操作系统是否启动完成;
[0095]S22:如果是,则判断移动设备的屏幕是否处于灭屏状态;
[0096]S23:如果是,则判定符合条件;
[0097]S24:否则,则判断CPU的个数是否小于2;
[0098]S25:如果CPU的个数小于2,则判定不符合条件;
[0099]S26:如果CPU的个数大于2,则判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0100]S27:如果是,则判定不符合条件;
[0101]S28:否则,判定符合条件。
[0102]本实施例中,首先如果移动设备的操作系统尚未启动完成,则不能限制用于分配的动态内存的带宽,以加快系统启动速度。如果操作系统启动完成了,就要根据移动设备的屏幕是否是亮的来判断,如果是灭的,那么就限制用于分配的动态内存的带宽。而如果是亮的,那么就要判断当前的CPU个数,小于2就不限制用于分配的动态内存带宽,大于2就要根据是否存在请求全部带宽的内存资源分配请求来确定是否限制用于分配的动态内存带宽。
[0103]实施例2
[0104]如图3所示,本施例提供了一种用于分配动态内存资源的装置,包括:
[0105]请求获取单元Ul,用于获取应用程序的内存资源分配请求;
[0106]判断单元U2,用于判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件;
[0107]部分带宽分配单元U3,如果符合条件,则用于根据内存资源分配请求分配动态内存的部分带宽;
[0108]全部带宽分配单元U4,如果不符合条件,则用于为应用程序分配动态内存的全部带宽。
[0109]上述装置,根据终端设备的需要来分配内存资源,如果终端设备需要分配全部的带宽就全部分配,否则可以只分配其中的一部分带宽,剩余的带宽资源不占用。即只有系统并不需要全部内存资源的时候才节省,从而不仅可以保证智能移动终端的性能,同时也可以延长其续航时间。
[0110]具体地,判断单元U2包括:
[0111]第一判断子单元,用于判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0112]第一判定子单元,如果存在请求动态内存的全部带宽的内存资源分配请求,贝Ij用于判定不符合条件;
[0113]第二判定子单元,如果不存在请求动态内存的全部带宽的内存资源分配请求,则用于判定符合条件。
[0114]作为本实施例的第一种变形方式,判断单元U2包括:
[0115]第二判断子单元,用于判断移动设备的屏幕是否处于灭屏状态;
[0116]第三判定子单元,如果屏幕处于灭屏状态,则用于判定符合条件当屏幕处于灭屏状态,此时将用于分配的动态内存的带宽限制为四分之一;
[0117]第四判定子单元,如果屏幕是亮的,则判断CPU的个数是否小于2,如果CPU的个数小于2,则判定不符合条件。
[0118]另外,判断单元U2还包括:
[0119]第三判断子单元,如果CPU的个数大于2,则用于判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0120]第五判定子单元,如果存在请求动态内存的全部带宽的内存资源分配请求,则用于判定不符合条件;
[0121]第六判定子单元,如果不存在请求动态内存的全部带宽的内存资源分配请求,则用于判定符合条件。
[0122]作为本实施例的第二种变形方式,判断单元U2包括:
[0123]第四判断子单元,当移动设备的屏幕处于灭屏状态时,用于判断是否存在亮屏指令;
[0124]第七判定子单元,如果存在亮屏指令,则用于判定不符合条件。
[0125]本实施例提供的装置,可以加快屏幕点亮的速度。
[0126]作为本实施例的第三种变形方式,判断单元U2包括:
[0127]第五判断子单元,用于判断是否开始启动移动设备的操作系统;
[0128]第八判定子单元,如果开始启动移动设备的操作系统,则用于判定不符合条件。
[0129]上述装置,在操作系统启动时利用动态内存的全部带宽,加快了系统启动速度,提升用户体验。
[0130]作为本实施例的第四种变形方式,判断单元U2包括:
[0131]第六判断子单元,用于判断移动设备的操作系统是否启动完成;
[0132]第七判断子单元,如果操作系统启动完成,则用于判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0133]第九判定子单元,如果存在请求动态内存的全部带宽的内存资源分配请求,贝Ij用于判定不符合条件;
[0134]第十判定子单元,如果不存在请求动态内存的全部带宽的内存资源分配请求,则用于判定符合条件。
[0135]作为本实施例的第五种变形方式,判断单元U2包括:
[0136]启动完成判断子单元,用于判断移动设备的操作系统是否启动完成;
[0137]屏幕状态判断子单元,如果操作系统启动完成,则判断移动设备的屏幕是否处于灭屏状态;
[0138]第一判定符合条件子单元,如果屏幕处于灭屏状态,则用于判定符合条件;
[0139]CPU个数判断子单元,如果屏幕处于亮屏屏状态,则判断CPU的个数是否小于2;
[0140]第一判定不符合条件子单元,如果CPU的个数小于2,则用于判定不符合条件;
[0141]请求判断子单元,如果CPU的个数大于2,则用于判断是否存在请求动态内存的全部带宽的内存资源分配请求;
[0142]第二判定不符合条件子单元,如果存在请求动态内存的全部带宽的内存资源分配请求,则用于判定不符合条件;
[0143]第二判定符合条件子单元,如果不存在请求动态内存的全部带宽的内存资源分配请求,则用于判定符合条件。
[0144]显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
【主权项】
1.一种用于分配动态内存资源的方法,其特征在于,包括如下步骤: 获取应用程序的内存资源分配请求; 判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件; 如果符合,则根据所述内存资源分配请求分配所述动态内存的部分带宽; 否则,为所述应用程序分配所述动态内存的全部带宽。2.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 判断是否存在请求所述动态内存的全部带宽的内存资源分配请求; 如果是,则判定不符合所述条件; 否则,判定符合所述条件。3.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 判断所述移动设备的屏幕是否处于灭屏状态; 如果是,则判定符合所述条件; 如果否,则判断CHJ的个数是否小于2,如果CRJ的个数小于2,则判定不符合所述条件。4.根据权利要求3所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤,还包括: 如果CPU的个数大于2,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求; 如果是,则判定不符合所述条件; 否则,判定符合所述条件。5.根据权利要求3或4所述的方法,其特征在于,当所述屏幕处于灭屏状态,则将用于分配的所述动态内存的带宽限制为四分之一。6.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 当所述移动设备的屏幕处于灭屏状态时,判断是否存在亮屏指令; 如果是,则判定不符合所述条件。7.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 判断是否开始启动所述移动设备的操作系统; 如果是,则判定不符合所述条件。8.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 判断所述移动设备的操作系统是否启动完成; 如果是,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求; 如果是,则判定不符合所述条件; 否则,判定符合所述条件。9.根据权利要求1所述的方法,其特征在于,所述判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件的步骤包括: 判断所述移动设备的操作系统是否启动完成; 如果是,则判断所述移动设备的屏幕是否处于灭屏状态; 如果是,则判定符合所述条件; 否则,则判断CHJ的个数是否小于2; 如果CRJ的个数小于2,则判定不符合所述条件; 如果CPU的个数大于2,则判断是否存在请求所述动态内存的全部带宽的内存资源分配请求; 如果是,则判定不符合所述条件; 否则,判定符合所述条件。10.—种用于分配动态内存资源的装置,其特征在于,包括: 请求获取单元,用于获取应用程序的内存资源分配请求; 判断单元,用于判断是否符合将用于分配的动态内存的带宽限制为部分带宽的条件;部分带宽分配单元,如果符合所述条件,则用于根据所述内存资源分配请求分配所述动态内存的部分带宽; 全部带宽分配单元,如果不符合所述条件,则用于为所述应用程序分配所述动态内存的全部带宽。
【文档编号】G06F9/50GK105893140SQ201510954679
【公开日】2016年8月24日
【申请日】2015年12月17日
【发明人】谢国锋
【申请人】乐视移动智能信息技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1