对象加载方法、装置、终端及存储介质制造方法及图纸

技术编号:21140530 阅读:26 留言:0更新日期:2019-05-18 05:00
本发明专利技术实施例公开了一种对象加载方法、装置、终端及存储介质。其中,方法包括:获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池;在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象。本实施例有利于减少系统内存消耗,降低系统OOM频率。

【技术实现步骤摘要】
对象加载方法、装置、终端及存储介质
本专利技术实施例涉及内存技术,尤其涉及一种对象加载方法、装置、终端及存储介质。
技术介绍
在应用程序启动时以及运行过程中,往往需要从网络加载图片、视频、文档等对象,实现应用程序的正常使用和展示。现有技术中,应用程序在从网络中加载并解析每个对象时,均需要向系统申请一块内存,使得加载并解析对象的过程十分耗内存。当消耗的内存大于系统能够提供的内存阈值时,系统将会抛出OOM(OutOfMemoryError)异常,出现应用程序内存不足的现象。
技术实现思路
本专利技术实施例提供一种对象加载方法、装置、终端及存储介质,以减少系统内存消耗,降低系统OOM频率。第一方面,本专利技术实施例提供了一种对象加载方法,包括:获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池;在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象。第二方面,本专利技术实施例还提供了一种对象加载装置,包括:获取模块,用于获取终端的硬件配置等级;设置模块,用于根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池;判断模块,用于在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;加载模块,用于如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象。第三方面,本专利技术实施例还提供了一种终端,所述终端包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现任一实施例所述的对象加载方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现任一实施例所述的对象加载方法。本专利技术实施例中,通过获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池,从而充分利用终端的硬件配置,设置相应缓存大小的对象池,进而能够存储较多的解析后对象;通过在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象,从而无需从系统申请内存,减少系统内存消耗,降低系统OOM频率;而且,正是由于对象池能够存储较多的解析后对象,增加了能够复用的对象,进一步减少系统内存消耗,降低系统OOM频率。附图说明图1是本专利技术实施例一提供的一种对象加载方法的流程图;图2是本专利技术实施例二提供的一种对象加载方法的流程图;图3是本专利技术实施例三提供的一种对象加载装置的结构示意图;图4是本专利技术实施例四提供的一种终端的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的一种对象加载方法的流程图,本实施例可适用于运行于终端的应用程序加载对象的情况,该方法可以由对象加载装置来执行,该装置可以由硬件和/或软件构成,并一般集成在终端。结合图1,本实施例提供的方法具体包括如下操作:S110、获取终端的硬件配置等级。终端的硬件配置包括但不限于处理器、内存和运行内存。如果处理器的数据处理能力较强、内存和运行内存较大,则硬件配置等级高;如果处理器的数据处理能力较差、内存和运行内存空间较小,则硬件配置等级低。当然,硬件配置等级的划分方式不限于高等级和低等级,还包括第一等级、第二等级、第三等级等,各等级之间具有高低差别。在一可选实施方式中,可通过终端的机型等级,获取硬件配置等级。例如,若终端是高端机型,则认为硬件配置等级高;若终端是低端机型,则认为硬件配置等级低。在另一可选实施方式中,预设处理器的参数阈值(如主频阈值,内核阈值),内存阈值和运行内存阈值,若终端的处理器的参数超过参数阈值、内存超过内存阈值,且运行内存超过运行内存阈值,则终端的硬件配置等级高;反之,终端的硬件配置等级低。S120、根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池。可选地,在终端的JAVA堆中设置对象池,对象池用于存储目标对象,实现目标对象的复用。根据S110的描述,终端的硬件配置等级高,则终端能够为应用程序提供的运行内存和内存阈值较大,则对象池的缓存可以设置得较大。基于此,令对象池的缓存大小与硬件配置等级相匹配。可选地,如果硬件配置等级属于第一等级,设置的对象池的缓存大小为第一比例的运行内存大小;如果硬件配置等级属于第二等级,设置的对象池的缓存大小为第二比例的运行内存大小;其中,第一等级高于第二等级,第一比例大于第二比例。例如,如果硬件配置等级属于第一等级,设置对象池的缓存大小为1/8的运行内存大小;如果硬件配置等级属于第二等级,设置对象池的缓存大小为1/16的运行内存大小。可选地,在设置完对象池的缓存大小之后,对对象池进行初始化。对象池在被初始化时,可能只有几个对象,甚至没有对象,按需创建对象能节省资源和时间,对于响应时间要求较高的情况,可以预先创建若干个对象,例如解析后的目标对象。S130、在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中。如果判断为是,即解析后的目标对象存储在对象池中,继续执行S140。S140、从对象池中加载解析后的所述目标对象。目标对象包括但不限于图片、文档、音视频等。在应用程序加载并解析目标对象时,不必从系统申请一块内存,并从网络加载并解析目标对象,而是先判断解析后的目标对象是否存储在对象池中。如果解析后的目标对象存储在对象池中,直接从对象池中加载解析后的目标对象即可。可选地,如果目标对象为位图(Bitemap),解析工具可以为bitmapfactory.decoderesource,对象池为BitmapPool。本专利技术实施例中,通过获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池,从而充分利用终端的硬件配置,设置相应缓存大小的对象池,进而能够存储较多的解析后对象;通过在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象,从而无需从系统申请内存,减少系统内存消耗,降低系统OOM频率;而且,正是由于对象池能够存储较多的解析后对象,增加了能够复用的对象,进一步减少系统内存消耗,降低系统OOM频率。进一步地,通过减少系统内存消耗,进而也减少了系统进行垃圾回收(garbagecollection,GC)的频率。具体地,系统执行GC操作的时候,任何线程的任何操作都会需要暂停,等待GC操作完成之后,其他操作才能够继续运行,故而如果程序频繁GC,自然会导致界面卡顿。通过减少系统内存消耗,使得各线程的操作无需暂停,避免界面卡顿。实施例二图2是本专利技术实施例二提供的一种对象加载方法的流程图,本实施例在上述实施例的各可选实施方式基础上,进一步优化。可选地,将操作“获取终端的硬件配置等级”优化为“在启动对象加载操作时,判断是否设置有对象池;如果未设置对象池,获取终端的硬件配置等本文档来自技高网...

【技术保护点】
1.一种对象加载方法,其特征在于,包括:获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池;在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象。

【技术特征摘要】
1.一种对象加载方法,其特征在于,包括:获取终端的硬件配置等级;根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池;在加载目标对象时,判断解析后的所述目标对象是否存储在所述对象池中;如果所述目标对象存储在对象池中,从对象池中加载解析后的所述目标对象。2.根据权利要求1所述的方法,其特征在于,所述根据所述硬件配置等级,设置缓存大小与所述硬件配置等级相匹配的对象池,包括:如果硬件配置等级属于第一等级,设置的对象池的缓存大小为第一比例的运行内存大小;如果硬件配置等级属于第二等级,设置的对象池的缓存大小为第二比例的运行内存大小;其中,第一等级高于第二等级,第一比例大于第二比例。3.根据权利要求1所述的方法,其特征在于,所述获取终端的硬件配置等级,包括:在启动对象加载操作时,判断是否设置有对象池;如果未设置对象池,获取终端的硬件配置等级。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:如果所述目标对象未存储在对象池中,解析所述目标对象;将解析后的目标对象存储至所述对象池中。5.根据权利要求4所述的方法,其特征在于,所述将解析后的目标对象存储至所述对象池中,包括:判断解析后的目标对象大小与对象池的已用缓存大小之和是否超过所述对象池的缓存阈值;如果解析后的目标对象大小与对象池的已用缓存大小之和未超过所述对象池的缓存阈值,将解...

【专利技术属性】
技术研发人员:李武军
申请(专利权)人:广州虎牙信息科技有限公司
类型:发明
国别省市:广东,44

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

1