一种资源管理的方法和系统技术方案

技术编号:3653164 阅读:123 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种资源管理的方法和系统,其基本思路是当系统处于某一个应用程序阶段时,根据下阶段需要的资源项的历史统计数据值,利用CPU的闲置时间,预先加载下阶段最可能需要的资源项,这样,在应用程序启动或进入下一阶段时,直接引用已经加载好的资源项,可以省去大量的资源项加载时间,从而加快应用程序的执行速度。

【技术实现步骤摘要】

本专利技术涉及资源管理技术,尤其涉及一种资源管理的方法和系统
技术介绍
在终端设备上,特别是一些中低端设备上,如中低端的机顶盒和手机,由于受成本压力,硬件性能往往较低,造成应用程序,特别是人机交互式应用程序,在启动和运行的过程中速度很慢,给用户造成较差的体验效果。究其原因,其瓶颈很大一部分由于资源,如静态图片和动画,加载速度慢造成的。通过分析可以发现,在应用程序状态变化前,如应用程序从未启动到启动或应用程序从一个运行阶段切换到下一个运行阶段(本说明书中,把应用程序从未启动到启动也当作应用程序阶段切换)前,终端设备上的中央处理器(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)在应用程序阶段切换前,把下阶段需要的资源项加载到资源堆;2)在应用程序阶段切换中,从所述资源堆中引用需要的资源项;3)在应用程序阶段切换后,回收所述资源堆中的资源项。

【技术特征摘要】

【专利技术属性】
技术研发人员:丁送星
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1