CN1889737A - 一种资源管理的方法和系统 - Google Patents
一种资源管理的方法和系统 Download PDFInfo
- Publication number
- CN1889737A CN1889737A CNA2006100992394A CN200610099239A CN1889737A CN 1889737 A CN1889737 A CN 1889737A CN A2006100992394 A CNA2006100992394 A CN A2006100992394A CN 200610099239 A CN200610099239 A CN 200610099239A CN 1889737 A CN1889737 A CN 1889737A
- Authority
- CN
- China
- Prior art keywords
- resource
- module
- resource items
- heap
- items
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种资源管理的方法和系统,其基本思路是当系统处于某一个应用程序阶段时,根据下阶段需要的资源项的历史统计数据值,利用CPU的闲置时间,预先加载下阶段最可能需要的资源项,这样,在应用程序启动或进入下一阶段时,直接引用已经加载好的资源项,可以省去大量的资源项加载时间,从而加快应用程序的执行速度。
Description
技术领域
本发明涉及资源管理技术,尤其涉及一种资源管理的方法和系统。
背景技术
在终端设备上,特别是一些中低端设备上,如中低端的机顶盒和手机,由于受成本压力,硬件性能往往较低,造成应用程序,特别是人机交互式应用程序,在启动和运行的过程中速度很慢,给用户造成较差的体验效果。究其原因,其瓶颈很大一部分由于资源,如静态图片和动画,加载速度慢造成的。
通过分析可以发现,在应用程序状态变化前,如应用程序从未启动到启动或应用程序从一个运行阶段切换到下一个运行阶段(本说明书中,把应用程序从未启动到启动也当作应用程序阶段切换)前,终端设备上的中央处理器(CPU)有大量的闲置时间,比如用户在打开网页浏览网页内容时CPU处于闲置状态,但现有资源管理的方法没有充分利用CPU的闲置时间。
请参考图1,现有的一种资源管理的方法:在应用程序阶段切换中,A1判断所需的资源项是否加载完成,如果是,继续A4;否则,继续A2。A2,执行资源项加载函数逐项向系统申请内存。A3,资源项加载到申请到的内存中,继续A1。在应用程序阶段切换后,A4,使用资源项并执行后面的操作。A5,待资源项使用完成后,再逐项卸载资源项,释放内存。
请参考图2,为现有的另一种资源管理的方法,该方法可以看成是对上述方法的改进。在应用程序阶段切换前,B1,系统首先申请一块较大内存作为资源堆。在应用程序阶段切换中,B2,判断所需资源项加载是否完成,如果是,继续B6;否则,继续B3。B3,判断资源堆剩余空间是否足够加载资源项,如果是,继续B5;否则,继续B4。B4,向系统申请内存,继续B5。B5,加载资源项。在应用程序阶段切换后,B6,使用资源项并执行后面的操作。B7,待资源项使用完成后,再逐项卸载资源项,如果是从资源堆中获得的资源项,进行资源堆回收管理,如果是申请内存中的资源项则释放掉该内存空间。B8,当不再需要资源堆时,再释放资源堆占用的内存空间。
从以上的两种技术方案可以看出,所需资源项是在应用程序阶段切换过程中加载的,导致应用程序阶段切换速度慢,造成整个应用程序的执行速度很慢,特别地,如果是人机交互程序且需要的资源项量较大时,用户的一次操作,可能会等待很长的时间,用户体验效果不好。
发明内容
本发明要解决的技术问题是提供一种加快应用程序执行速度的资源管理方法和系统。
为解决上述技术问题,本发明通过以下技术方案实现:
一种资源管理的方法,包括:1)在应用程序阶段切换前,把下阶段需要的资源项加载到资源堆;2)在应用程序阶段切换中,从所述资源堆中引用需要的资源项;3)在应用程序阶段切换后,回收所述资源堆中的资源项。
优选的,在所述步骤1)加载之前,应用程序初始化,分配资源堆,在所述步骤3)回收资源项之后,应用程序结束,释放资源堆。
优选的,在分配资源堆之前,预置应用程序各阶段的下阶段需要的资源项。
优选的,预置应用程序各阶段下阶段需要的资源项之后,预置应用程序各阶段的下阶段需要的资源项的历史统计数据值,所述步骤1),在应用程序阶段切换前,具体包括:11)判断在所述应用程序阶段切换前的时间段内,是否产生空闲时间段,如果是,继续步骤12);否则,继续步骤2);12)判断是否存在下阶段需要且尚未加载的资源项,如果是,设置所述资源项为可加载状态,继续步骤13);否则,继续步骤15);13)判断所述可加载状态的资源项是否已全部加载到资源堆,如果是,继续步骤15);否则,继续步骤14);14)从所述可加载状态的资源项中选取历史统计数据值最大的资源项,判断所述资源堆剩余空间是否足够加载所述选取的资源项,如果是,把所述选取的资源项加载到所述资源堆,继续步骤13);否则,设定所述选取的资源项为不可加载状态,继续步骤13);15)判断是否进行应用程序阶段切换,如果是,继续步骤2);否则,继续步骤11)。
优选的,步骤2)还包括,申请内存空间,加载下阶段需要的不能从资源堆中引用的资源项;步骤3)还包括,释放所述内存空间。
优选的,所述步骤2),在应用程序阶段切换中,具体包括:21)判断需要的资源项是否已全部加载到应用程序,如果是,继续步骤3);否则,继续步骤22);22)从还没有加载的需要的资源项中,取出其中一项进行加载,判断所述取出的资源项是否存在于所述资源堆中,如果是,继续步骤23);否则,继续步骤24);23)从资源堆中引用所述取出的资源项,该资源项的历史统计数据值加1,继续步骤21);24)申请内存空间,加载所述取出的资源项,该资源项的历史统计数据值加1,继续步骤21)。
优选的,所述步骤23)还包括,所述取出的资源项的引用计数值加1,所述步骤3),在应用程序阶段切换后,具体包括:31)应用程序使用资源项,使用后卸载所述资源项,判断该资源项是否为所述资源堆中的资源项,如果是,继续步骤32);否则,继续步骤33);32)所述使用过的资源项的引用计数值减1,判断该资源项的引用计数值是否为0,如果是,回收所述资源堆中使用过的资源项,继续步骤34),否则,继续步骤34);33)释放所述使用过的资源项的内存空间,继续步骤34);34)判断应用程序阶段是否结束,如果是,继续步骤35),否则,继续步骤31);35)判断应用程序是否结束,如果是,释放资源堆;否则继续步骤1)。
优选的,所述步骤31)之前,回收所述资源堆中引用计数值为0的资源项。
优选的,在分配资源堆之后,调整所述资源项的历史统计数据值。
一种资源管理的系统,包括资源项模块、加载模块、资源堆模块、引用模块、程序运行模块和回收模块:所述资源项模块用于存储系统资源项;所述加载模块用于在应用程序阶段切换前,把下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中;所述资源堆模块用于存储应用程序阶段下阶段需要的资源项;所述引用模块用于在应用程序阶段切换中,为所述程序运行模块从所述资源堆模块中引用需要的资源项;所述程序运行模块用于使用资源项;所述回收模块在应用程序阶段切换后,所述程序运行模块使用资源项后,回收所述资源堆模块中使用过的资源项。
优选的,还包括分配资源堆模块和释放资源堆模块:所述分配资源堆模块用于为所述程序运行模块分配对应的资源堆模块;所述释放资源堆模块用于为所述程序运行模块释放对应的所述资源堆模块。
优选的,还包括预置参数模块和程序需要资源项模块:所述预置参数模块用于把应用程序各阶段下阶段需要的资源项信息预先存储到所述程序需要资源项模块中;所述程序需要资源项模块用于存储程序各阶段下阶段需要的资源项信息。
优选的,还包括历史统计数据模块和引用计数模块:所述预置参数模块还用于把应用程序各阶段下阶段需要的资源项的历史统计数据信息预先存储到所述历史统计数据值模块中;所述历史统计数据模块用于存储应用程序各阶段下阶段需要的资源项的历史统计数据信息;所述加载模块用于在应用程序阶段切换前,查询所述程序需要资源项模块获得下阶段需要的资源项信息,查询所述历史统计数据值模块获得所述下阶段需要的资源项对应的历史统计数据信息,优先将历史统计数据值大的下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中;所述引用模块用于在应用程序阶段切换中,为所述程序运行模块从所述资源堆模块中引用需要的资源项,资源项每引用一次,把该资源项对应的在所述历史统计数据模块中的历史统计数据值加1,把该资源项对应的在所述引用计数模块中的计数值加1;所述引用计数模块用于存储在所述资源堆模块中的资源项的引用计数值;所述回收模块用于在应用程序阶段切换后,在所述程序运行模块使用资源项后,把所述使用过的资源项对应的在引用计数模块中的引用计数值减1,当资源项的引用计数值为0的时候,从所述资源堆模块中回收该资源项。
优选的,还包括内存申请模块、内存缓冲模块和内存释放模块:所述内存申请模块用于应用程序阶段切换中,为所述程序运行模块申请对应的内存缓冲模块,把应用程序各阶段下阶段需要的不能从所述资源堆模块中引用的资源项从所述资源项模块中加载到所述内存缓冲模块中;所述内存缓冲模块用于存储应用程序各阶段下阶段需要的不能从资源堆中引用的资源项;所述内存释放模块用于在程序运行模块使用资源项后,为所述程序运行模块释放资源项对应的所述内存缓冲模块。
从以上技术方案可以看出,由于本发明在在应用程序阶段切换前,把下阶段需要的资源项加载到资源堆,在应用程序阶段切换中,从所述资源堆中引用需要的资源项;在应用程序阶段切换后,回收所述资源堆中的资源项。通过预先加载下阶段需要的资源项的方式,使得在应用程序启动或进入下一阶段时,可以直接引用已经加载好的资源项,从而省去大量的资源项加载时间,加快应用程序的执行速度。
进一步,本发明在分配资源堆之前,预置应用程序各阶段下阶段需要的资源项的历史统计值,在应用程序阶段切换中,应用程序每加载一次资源项,该资源项的历史统计数据值加1,通过这样的方式,预测出一段时间内使用频繁的资源项为最需要加载的资源项,在应用程序阶段切换前,依次将历史统计数据值最大的资源项加载到资源堆。
进一步,本发明在分配资源堆之后,每次程序运行时,调整历史统计数据值,可以提高资源项预加载的命中率。定期降低所有资源项的历史统计数据值,可以保证未来使用较多的资源项的历史统计数据很容易就能超出近期使用不到的资源项的历史统计数据。
附图说明
图1为现有技术一的方法流程图;
图2为现有技术二的方法流程图;
图3为本发明的方法流程图;
图4-1和图4-2为本发明的具体实施方式流程图;
图5为本发明的系统示意图。
具体实施方式
本发明提供一种资源管理方法和系统,其基本思路是当系统处于某一个应用程序阶段时,根据下阶段需要的资源项的历史统计数据值,利用CPU的闲置时间把下阶段最可能需要的资源项预先加载到资源堆;在应用程序启动或进入下一阶段时,直接引用已经加载好的资源项;在应用程序阶段切换后,回收资源堆中的资源。
请参考图3,为本发明的方法流程图,包括:
P1)在应用程序阶段切换前,把下阶段需要的资源项加载到资源堆;
P2)在应用程序阶段切换中,从所述资源堆中引用需要的资源项;
P3)在应用程序阶段切换后,回收所述资源堆中的资源项。
为便于进一步理解本发明,以下结合具体实施方式对本技术方案进行详细的描述。
请参考图4-1和图4-2,为本发明的具体实施方式流程图。为便于理解,依据程序的运行过程,将具体实施方式的步骤分为以下几个阶段:
系统准备阶段包括:C1;
应用程序初始化阶段包括:C2~C3;
应用程序阶段切换前包括:C4~C11;
应用程序阶段切换中包括:C12~C15;
应用程序阶段切换后包括:C16~C24;
应用程序结束阶段包括:C25。
C1.在系统准备阶段,设置应用程序各阶段下阶段所需资源项及其历史统计数据值。
具体的,历史统计数据值可以统一设为某一定值,比如1,也可以根据对应用程序的判断将最可能用到的资源项的历史统计数据值设得大一点,比如5,而将其它部分的历史统计数据设得小一些,比如1,在应用程序第一次启动前设置。
所述资源项的设置项目包括资源项的历史统计数据、资源项的引用计数、可加载状态标志及识别该项资源项的资源标识符。
所述应用程序各阶段指应用程序当前所处的运行阶段,下阶段指应用程序即将进入的阶段,如在一个网页浏览程序中,用户正处于第一个页面,用户将通过点击鼠标后进入第二个页面,第一个页面属于当前的运行阶段,第二个页面属于下阶段。
C2.在应用程序初始化阶段,分配资源堆。
具体为,系统预先申请一块较大空间的内存作为资源堆,资源堆的大小可以根据应用程序对资源项的需求情况确定,如为应用程序各阶段所需资源项的平均内存占用量。
C3.调整资源项历史统计数据。为了提高资源项预加载的命中率,应该定期降低所有资源项的历史统计数据值,如每周进行一次资源项历史统计数据的清零处理,以保证未来使用较多的资源项的历史统计数据很容易就能超出近期使用不到的资源项的历史统计数据。
C4.判断在应用程序阶段切换前的时间段内,是否产生空闲时间段,如果是,继续C5;否则,继续C12。
应用程序可以在空闲时间段发出一个信息,发出信息可以采用发出一个信号或调用一个函数的方式,资源管理模块会利用该时间段开始设置可加载状态,加载资源到资源堆中,如果未能等待到空闲时间段,意味着应用程序在本阶段内未产生空闲时间段,从而进入阶段切换。
C5.判断是否存在下阶段需要加载且尚未加载的资源项,如果是,继续C6,否则,继续C11。
C6.在应用程序阶段切换前,设置所有下阶段需要的但还没有加载的资源项为可加载状态。
C7.判断处于可加载状态的下阶段需要的资源项是否已全部加载到资源堆,如果是,继续C11;否则,继续C8。
C8.从所述可加载状态的下阶段需要的资源项中选取历史统计数据值最大的资源项,判断所述资源堆剩余空间是否足够加载所述选取的资源项,如果是,继续C9;否则,继续C10。
需要说明的,本具体实施方式使用历史统计数据值作为选取下阶段最需要加载的资源项的依据;基于本发明的基本思想,选取最需要加载的资源项可以不使用历史统计数据,而使用应用程序的某种运行趋势的方法,如赛车游戏中,可以根据赛车的运动方向,预先加载赛车的赛道图片,也在本发明保护的范围内。
C9.把所述选取的资源项加载到所述资源堆,继续C7。
C10.设置该资源项为不可加载资源项,保证后续的循环不会再尝试加载它,继续C7。当下次空闲时间段到来时,可能资源堆的空间已经足够加载该项资源项,应该重新尝试加载该项资源项。
C11.判断是否要进行应用程序阶段切换,如果是,继续C12;否则,继续C4,等待下一个空闲时间段。
C12.在应用程序阶段切换中,判断本阶段所需要的资源项是否已加载完成,如果是,继续C16;否则,继续C13。
C13.取出其中一项没有加载的资源项,判断该资源项是否存在于资源堆中,如果是,继续C14;否则,继续C15。
C14.直接从资源堆中引用该资源项,该资源项的历史统计数据值和引用计数值加1,继续C12。
由于该项资源项已经存在于资源堆中,所以直接引用该项资源项就可以了,节省了该项资源项的加载时间,同时,这步操作表示该项资源项被使用了一次,所以应该更新其历史统计数据。本实施方式对资源项的管理采用了引用计数技术,引用计数技术是一种管理多个模块共享资源项的方法,它为每项资源项设置一个引用计数器,当某项资源项被引用一次时,计数器加1,被释放一次时计数器减1,当计数器为0时表示该项资源项已经不再需要了。
可以理解的是,每次资源项被引用后,历史统计数据值的增加可以是其它值,比如为2。
C15.申请内存空间,加载所述取出的资源项,该资源项的历史统计数据值加1,继续C12。
如该项资源项未被加载到资源堆中,应该将该项资源项通过内存加载到系统中来,同时,这步操作也表示该项资源项被使用了一次,所以应该更新其历史统计数据。
C16.在应用程序阶段切换后,回收资源堆中引用计数为0的资源项。本阶段所需资源项已加载完成,资源堆中引用计数还为0的资源项,表示是未命中资源项,应该进行回收。
所述资源项回收表示卸载该项资源项,并释放该项资源项占用的内存等系统资源。
C17.应用程序使用资源项,资源项使用完成后进行资源项释放。当一项资源项使用完成后,应该及时回收该项资源项所占用的系统资源。
C18.判断使用过的资源项是否为资源堆中的资源项,如果是,继续C19;否则,继续C20。
C19.该资源项对应的引用计数值减1,继续C21。
C20.卸载资源项,释放内存,继续C23。
C21.判断该资源项的应用计数值是否为0,如果是,继续C22;否则,继续C23。
C22.资源堆中回收该资源项,继续C23。
C23.判断应用程序阶段是否结束,如果是,继续C24;否则,继续C17。
C24.判断应用程序是否结束,如果是,继续C25;否则,继续C4。继续C4说明准备进入应用程序阶段的下阶段。
C25.释放资源堆。应用程序结束后,应该释放资源堆占用的空间。
请参考图5,为本发明的系统示意图,包括资源项模块101、加载模块102、资源堆模块103、引用模块104、程序运行模块105和回收模块106:
所述加载模块102用于在应用程序阶段切换前,把下阶段需要的资源项从所述资源项模块101中加载到所述资源堆模块103中;
所述资源项模块101用于存储系统资源项;
所述资源堆模块103用于存储应用程序阶段下阶段需要的资源项;
所述引用模块104用于在应用程序阶段切换中,为所述程序运行模块105从所述资源堆模块103中引用需要的资源项;
所述程序运行模块105用于使用资源项;
所述回收模块106在应用程序阶段切换后,所述程序运行模块105使用资源项后,回收所述资源堆模块103中使用过的资源项。
本系统进一步包括程序需要资源项模块、历史统计数据模块、预置参数模块、分配资源堆模块、引用计数模块、释放资源堆模块、内存申请模块、内存缓冲模块和释放内存模块:
所述预置参数模块用于把应用程序各阶段下阶段需要的资源项信息预先存储到所述程序需要资源项模块中,把应用程序各阶段下阶段需要的资源项的历史统计数据信息预先存储到所述历史统计数据值模块中;
所述程序需要资源项模块用于存储程序各阶段下阶段需要的资源项信息;
所述历史统计数据模块用于存储应用程序各阶段下阶段需要的资源项的历史统计数据信息;
所述分配资源堆模块用于为所述程序运行模块分配对应的资源堆模块;
所述加载模块用于在应用程序阶段切换前,查询所述程序需要资源项模块获得下阶段需要的资源项信息,查询所述历史统计数据值模块获得所述下阶段需要的资源项对应的历史统计数据信息,优先将历史统计数据值大的下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中;
所述引用模块用于在应用程序阶段切换中,为所述程序运行模块从所述资源堆模块中引用需要的资源项,资源项每引用一次,把该资源项对应的在所述历史统计数据模块中的历史统计数据值加1,把该资源项对应的在所述引用计数模块中的计数值加1;
所述引用计数模块用于存储在所述资源堆模块中的资源项的引用计数值;
所述内存申请模块用于在应用程序阶段切换中,为所述程序运行模块申请对应的内存缓冲模块,把应用程序各阶段下阶段需要的不能从资源堆模块中引用的资源项从所述资源项模块中加载到所述内存缓冲模块中;
所述内存缓冲模块用于存储应用程序各阶段下阶段需要的不能从资源堆中引用的资源项;
所述回收模块用于在应用程序阶段切换后,在所述程序运行模块使用资源项后,把所述使用过的资源项对应的在引用计数模块中的引用计数值减1,当资源项的引用计数值为0的时候,从所述资源堆模块中回收该资源项;
所述内存释放模块用于在所述程序运行模块使用资源项后,为所述程序运行模块释放资源项对应的所述内存缓冲模块;
所述释放资源堆模块用于为所述程序运行模块释放对应的所述资源堆模块。
本实施例中的系统工作运行过程为:
预置参数模块把应用程序各阶段下阶段需要的资源项信息预先存储到所述程序需要资源项模块中,把应用程序各阶段下阶段需要的资源项的历史统计数据信息预先存储到所述历史统计数据值模块中。分配资源堆模块为所述程序运行模块分配对应的资源堆模块。在应用程序阶段切换前,加载模块查询所述程序需要资源项模块获得下阶段需要的资源项信息,查询所述历史统计数据值模块获得所述下阶段需要的资源项对应的历史统计数据信息,优先将历史统计数据值大的下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中。在应用程序阶段切换中,引用模块为所述程序运行模块从所述资源堆模块中引用需要的资源项,资源项每引用一次,把该资源项对应的在所述历史统计数据模块中的历史统计数据值加1,把该资源项对应的在所述引用计数模块中的计数值加1;如果需要的资源项不能从资源堆模块中引用,所述内存申请模块为所述程序运行模块申请对应的内存缓冲模块,把不能从资源堆模块中引用的资源项从所述资源项模块中加载到所述内存缓冲模块中。在应用程序阶段切换后,如果使用的资源项为资源堆模块中的资源项,则回收模块在所述程序运行模块使用资源项后,把所述使用过的资源项对应的在引用计数模块中的引用计数值减1,当资源项的引用计数值为0的时候,从所述资源堆模块中回收该资源项;否则,所述内存释放模块为所述程序运行模块释放资源项对应的所述内存缓冲模块。程序结束时,释放资源堆模块为所述程序运行模块释放对应的所述资源堆模块。
以上对本发明所提供的一种资源管理方法和系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种资源管理的方法,其特征在于,包括:
1)在应用程序阶段切换前,把下阶段需要的资源项加载到资源堆;
2)在应用程序阶段切换中,从所述资源堆中引用需要的资源项;
3)在应用程序阶段切换后,回收所述资源堆中的资源项。
2.根据权利要求1所述的方法,其特征在于,在所述步骤1)加载之前,应用程序初始化,分配资源堆,在所述步骤3)回收资源项之后,应用程序结束,释放资源堆。
3.根据权利要求2所述的方法,其特征在于,在分配资源堆之前,预置应用程序各阶段的下阶段需要的资源项。
4.根据权利要求3所述的方法,其特征在于,预置应用程序各阶段下阶段需要的资源项之后,预置应用程序各阶段的下阶段需要的资源项的历史统计数据值,所述步骤1),在应用程序阶段切换前,具体包括:
11)判断在所述应用程序阶段切换前的时间段内,是否产生空闲时间段,如果是,继续步骤12);否则,继续步骤2);
12)判断是否存在下阶段需要且尚未加载的资源项,如果是,设置所述资源项为可加载状态,继续步骤13);否则,继续步骤15);
13)判断所述可加载状态的资源项是否已全部加载到资源堆,如果是,继续步骤15);否则,继续步骤14);
14)从所述可加载状态的资源项中选取历史统计数据值最大的资源项,判断所述资源堆剩余空间是否足够加载所述选取的资源项,如果是,把所述选取的资源项加载到所述资源堆,继续步骤13);否则,设定所述选取的资源项为不可加载状态,继续步骤13);
15)判断是否进行应用程序阶段切换,如果是,继续步骤2);否则,继续步骤11)。
5.根据权利要求1~4其中之一所述的方法,其特征在于,步骤2)还包括,申请内存空间,加载下阶段需要的不能从资源堆中引用的资源项;步骤3)还包括,释放所述内存空间。
6.根据权利要求5所述的方法,其特征在于,所述步骤2),在应用程序阶段切换中,具体包括:
21)判断需要的资源项是否已全部加载到应用程序,如果是,继续步骤3);否则,继续步骤22);
22)从还没有加载的需要的资源项中,取出其中一项进行加载,判断所述取出的资源项是否存在于所述资源堆中,如果是,继续步骤23);否则,继续步骤24);
23)从资源堆中引用所述取出的资源项,该资源项的历史统计数据值加1,继续步骤21);
24)申请内存空间,加载所述取出的资源项,该资源项的历史统计数据值加1,继续步骤21)。
7.根据权利要求6所述的方法,其特征在于,所述步骤23)还包括,所述取出的资源项的引用计数值加1,所述步骤3),在应用程序阶段切换后,具体包括:
31)应用程序使用资源项,使用后卸载所述资源项,判断该资源项是否为所述资源堆中的资源项,如果是,继续步骤32);否则,继续步骤33);
32)所述使用过的资源项的引用计数值减1,判断该资源项的引用计数值是否为0,如果是,回收所述资源堆中使用过的资源项,继续步骤34),否则,继续步骤34);
33)释放所述使用过的资源项的内存空间,继续步骤34);
34)判断应用程序阶段是否结束,如果是,继续步骤35),否则,继续步骤31);
35)判断应用程序是否结束,如果是,释放资源堆;否则继续步骤1)。
8.根据权利要求7所述的方法,其特征在于,所述步骤31)之前,回收所述资源堆中引用计数值为0的资源项。
9.根据权利要求4所述的方法,其特征在于,在分配资源堆之后,调整所述资源项的历史统计数据值。
10.一种资源管理的系统,其特征在于,包括资源项模块、加载模块、资源堆模块、引用模块、程序运行模块和回收模块:
所述资源项模块用于存储系统资源项;
所述加载模块用于在应用程序阶段切换前,把下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中;
所述资源堆模块用于存储应用程序阶段下阶段需要的资源项;
所述引用模块用于在应用程序阶段切换中,为所述程序运行模块从所述资源堆模块中引用需要的资源项;
所述程序运行模块用于使用资源项;
所述回收模块在应用程序阶段切换后,所述程序运行模块使用资源项后,回收所述资源堆模块中使用过的资源项。
11.根据权利要求10所述的系统,其特征在于,还包括分配资源堆模块和释放资源堆模块:
所述分配资源堆模块用于为所述程序运行模块分配对应的资源堆模块;
所述释放资源堆模块用于为所述程序运行模块释放对应的所述资源堆模块。
12.根据权利要求11所述的系统,其特征在于,还包括预置参数模块和程序需要资源项模块:
所述预置参数模块用于把应用程序各阶段下阶段需要的资源项信息预先存储到所述程序需要资源项模块中;
所述程序需要资源项模块用于存储程序各阶段下阶段需要的资源项信息。
13.根据权利要求12所述的系统,其特征在于,还包括历史统计数据模块和引用计数模块:
所述预置参数模块还用于把应用程序各阶段下阶段需要的资源项的历史统计数据信息预先存储到所述历史统计数据值模块中;
所述历史统计数据模块用于存储应用程序各阶段下阶段需要的资源项的历史统计数据信息;
所述加载模块用于在应用程序阶段切换前,查询所述程序需要资源项模块获得下阶段需要的资源项信息,查询所述历史统计数据值模块获得所述下阶段需要的资源项对应的历史统计数据信息,优先将历史统计数据值大的下阶段需要的资源项从所述资源项模块中加载到所述资源堆模块中;
所述引用模块用于在应用程序阶段切换中,为所述程序运行模块从所述资源堆模块中引用需要的资源项,资源项每引用一次,把该资源项对应的在所述历史统计数据模块中的历史统计数据值加1,把该资源项对应的在所述引用计数模块中的计数值加1;
所述引用计数模块用于存储在所述资源堆模块中的资源项的引用计数值;
所述回收模块用于在应用程序阶段切换后,在所述程序运行模块使用资源项后,把所述使用过的资源项对应的在引用计数模块中的引用计数值减1,当资源项的引用计数值为0的时候,从所述资源堆模块中回收该资源项。
14.根据权利要求10~13其中之一所述的系统,其特征在于,还包括内存申请模块、内存缓冲模块和内存释放模块:
所述内存申请模块用于应用程序阶段切换中,为所述程序运行模块申请对应的内存缓冲模块,把应用程序各阶段下阶段需要的不能从所述资源堆模块中引用的资源项从所述资源项模块中加载到所述内存缓冲模块中;
所述内存缓冲模块用于存储应用程序各阶段下阶段需要的不能从资源堆中引用的资源项;
所述内存释放模块用于在程序运行模块使用资源项后,为所述程序运行模块释放资源项对应的所述内存缓冲模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100992394A CN1889737A (zh) | 2006-07-21 | 2006-07-21 | 一种资源管理的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006100992394A CN1889737A (zh) | 2006-07-21 | 2006-07-21 | 一种资源管理的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1889737A true CN1889737A (zh) | 2007-01-03 |
Family
ID=37578995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006100992394A Pending CN1889737A (zh) | 2006-07-21 | 2006-07-21 | 一种资源管理的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1889737A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541602A (zh) * | 2011-12-28 | 2012-07-04 | 用友软件股份有限公司 | 界面的预加载装置和预加载方法 |
CN102736725A (zh) * | 2012-05-18 | 2012-10-17 | 华为技术有限公司 | 一种硬盘节能控制方法、装置及中央处理器 |
WO2013135145A1 (en) * | 2012-03-14 | 2013-09-19 | Tencent Technology (Shenzhen) Company Limited | Application program startup method and apparatus |
CN103430151A (zh) * | 2012-07-06 | 2013-12-04 | 华为终端有限公司 | 一种资源配置方法及装置 |
WO2015120705A1 (zh) * | 2014-02-14 | 2015-08-20 | 贝壳网际(北京)安全技术有限公司 | 用于启动应用的方法及装置 |
CN107613386A (zh) * | 2017-09-30 | 2018-01-19 | 烽火通信科技股份有限公司 | 一种iptv应用的启动方法和启动系统 |
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
WO2019196878A1 (zh) * | 2018-04-13 | 2019-10-17 | 华为技术有限公司 | 一种内存管理的方法以及相关设备 |
CN112765507A (zh) * | 2021-01-27 | 2021-05-07 | 上海淇玥信息技术有限公司 | 一种页面首屏渲染与资源加载方法、装置和电子设备 |
-
2006
- 2006-07-21 CN CNA2006100992394A patent/CN1889737A/zh active Pending
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541602A (zh) * | 2011-12-28 | 2012-07-04 | 用友软件股份有限公司 | 界面的预加载装置和预加载方法 |
WO2013135145A1 (en) * | 2012-03-14 | 2013-09-19 | Tencent Technology (Shenzhen) Company Limited | Application program startup method and apparatus |
CN102736725B (zh) * | 2012-05-18 | 2016-03-30 | 华为技术有限公司 | 一种硬盘节能控制方法、装置及中央处理器 |
CN102736725A (zh) * | 2012-05-18 | 2012-10-17 | 华为技术有限公司 | 一种硬盘节能控制方法、装置及中央处理器 |
US9740272B2 (en) | 2012-05-18 | 2017-08-22 | Huawei Technologies Co., Ltd. | Hard drive energy-saving control method and apparatus, and central processing unit |
WO2014005328A1 (zh) * | 2012-07-06 | 2014-01-09 | 华为终端有限公司 | 一种资源配置方法及装置 |
US9336054B2 (en) | 2012-07-06 | 2016-05-10 | Huawei Device Co., Ltd. | Method and apparatus for configuring resource |
CN103430151A (zh) * | 2012-07-06 | 2013-12-04 | 华为终端有限公司 | 一种资源配置方法及装置 |
WO2015120705A1 (zh) * | 2014-02-14 | 2015-08-20 | 贝壳网际(北京)安全技术有限公司 | 用于启动应用的方法及装置 |
CN107613386A (zh) * | 2017-09-30 | 2018-01-19 | 烽火通信科技股份有限公司 | 一种iptv应用的启动方法和启动系统 |
CN107613386B (zh) * | 2017-09-30 | 2019-09-27 | 烽火通信科技股份有限公司 | 一种iptv应用的启动方法和启动系统 |
CN108196938A (zh) * | 2017-12-27 | 2018-06-22 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
CN108196938B (zh) * | 2017-12-27 | 2021-10-29 | 努比亚技术有限公司 | 内存调用方法、移动终端及计算机可读存储介质 |
WO2019196878A1 (zh) * | 2018-04-13 | 2019-10-17 | 华为技术有限公司 | 一种内存管理的方法以及相关设备 |
CN112765507A (zh) * | 2021-01-27 | 2021-05-07 | 上海淇玥信息技术有限公司 | 一种页面首屏渲染与资源加载方法、装置和电子设备 |
CN112765507B (zh) * | 2021-01-27 | 2023-12-26 | 上海淇玥信息技术有限公司 | 一种页面首屏渲染与资源加载方法、装置和电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1889737A (zh) | 一种资源管理的方法和系统 | |
CN1154928C (zh) | 用于多任务设施信息处理系统的资源管理方法和设备 | |
CN101055533A (zh) | 一种多线程处理器动态内存管理系统及方法 | |
CN1096642C (zh) | 高效利用空间的对象加锁的系统和方法 | |
CN103150259B (zh) | 一种内存回收方法和装置 | |
CN1271524C (zh) | 一种静态内存管理方法 | |
CN1202474C (zh) | 程序执行装置及便携式信息处理装置 | |
CN101057217A (zh) | 高效多处理器系统及其方法 | |
CN1852309A (zh) | 数据同步处理方法及其客户端 | |
US20130054929A1 (en) | Mobile terminal and operation method for the same based on memory state changes | |
CN1905309A (zh) | 一种锂电池充电控制方法和系统 | |
CN1556474A (zh) | 软件的在线升级方法及装置 | |
CN1866293A (zh) | 与数据相关的槽位选择机制的纹理快取储存器控制 | |
CN1927431A (zh) | 移动通信终端游戏存储方法及采用该方法的移动通信终端 | |
CN1320463C (zh) | 能够有效使用存储器的存储池管理方法和系统 | |
CN101894049A (zh) | 一种自适应回收垃圾对象的系统及方法 | |
CN1295903C (zh) | 一种系统安全启动方法 | |
CN1369779A (zh) | 用于下载应用数据的方法和设备 | |
CN1811709A (zh) | 手持设备中操作系统的无限升级方法及装置 | |
CN1092358C (zh) | 带有检测点功能的计算机系统 | |
CN101030148A (zh) | 实现重映射的方法、装置 | |
CN1859103A (zh) | 一种下载系统及下载方法 | |
CN1863085A (zh) | 保证网管和网元配置数据一致性的方法及系统 | |
CN101039216A (zh) | 一种分布式系统定时方法、装置及系统 | |
CN110109677B (zh) | 一种动态对象缓存池分配方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20070103 |