一种内存释放方法及装置制造方法及图纸

技术编号:15329426 阅读:134 留言:0更新日期:2017-05-16 13:06
本发明专利技术实施例提供一种内存释放方法及装置,对文件进行解码后,先将解码成功的文件存储在第一缓存区中,在第一缓存区中剩余存储空间不足时,当需要存储新的解码成功的文件时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中,当确定存在OOM时,将第二缓存区中的解码成功的文件删除,因为第二缓存区中存储的文件为存储时间较长的文件,调用的概率较小,因此在存在OOM时删除第二缓存区中存储的文件不会影响移动终端的正常使用,且能够有效的解决OOM问题,从而实现了在避免影响移动终端的正常使用的情况下有效的解决OOM问题。

Memory releasing method and device

The embodiment of the invention provides a memory release method and device to decode the file after the first successful decoding files are stored in the first buffer, the remaining storage space in the first buffer, when you need to store the new file decoding success, will first slow streambufs stored in the decoding time long successful file transferred to second buffer, when determining the presence of OOM, the second decoding buffer successfully deleted files, because the stored second cache files in the storage time for longer documents, low probability of call, so delete files will not affect the second storage buffer in normal use the mobile terminal in the presence of OOM, and can effectively solve the OOM problem, thus to avoid affecting the normal use of the mobile terminal under the condition of effective problem solving OOM.

【技术实现步骤摘要】
一种内存释放方法及装置本申请是2013年5月21日提出的专利技术名称为“一种内存释放方法及装置”的中国专利技术专利申请201310191323.9的分案申请。
本专利技术涉及移动终端开发技术,尤其涉及一种内存释放方法及装置。
技术介绍
移动终端的内存通常指移动终端的物理内存,当存在应用进程时,移动终端会分配一部分物理内存给该应用进程,则这部分物理内存成为进程可使用内存,通常分配在托管堆上,由移动终端通过垃圾回收(GarbageCollection,GC)来管理,当移动终端的物理内存不足时,移动终端会根据垃圾回收(GarbageCollection,GC)策略清除一些没有被引用到的对象,释放空间,以解决内存不足(outofmemory,OOM)的问题。然而在进行与缓存文件相关的操作时,经常会出现OOM的问题,且很难通过GC策略解决。以位图(Bitmap)文件为例,当需要在一个界面上显示数十张图片乃至上百张图片时,即使使用类似于列表或者网络的控件来实现,限定一次显示的图片数量的上限,并在当图片较多时采用缩略图策略,当多次在一个界面上显示数目较多的图片,也会使大量内存一直被引用,移动终端无法通过GC策略完成回收,也很容易出现内存不足的问题。目前,对于进行文件相关操作时出现的内存不足的问题,存在三种解决方案。第一种解决方案,将文件存储为软引用(SoftReference)对象。软引用是一种需要通过SoftReference类来实现的引用方式,若一个对象为软引用对象,当移动终端出现OOM时,移动终端根据GC策略一定会回收该对象。这种方法的弊端在于,在一个界面上显示大量文件时,由于文件设置为软引用对象,当移动终端内存不足时,会被回收,导致在一个界面上的大量文件需要被重复解析,系统处理效率低,影响用户体验。第二种解决方案,在内存中加载文件时对文件进行边界压缩。这种方法的弊端在于,当需要在同一界面上显示大量的文件时,依然无法解决OOM问题。第三种解决方案,若显示文件时需要大量的内存,则将存储文件的托管堆的大小调大。这种方法的弊端在于,在内存一定的情况下,将存储文件的托管堆的大小调大,势必会影响其他模块的正常使用。这三种解决方案,均不能在避免影响移动终端的正常使用的情况下有效的解决OOM问题。
技术实现思路
本专利技术实施例提供一种内存释放方法及装置,以实现在避免影响移动终端的正常使用的情况下有效的解决OOM问题。一种内存释放方法,包括:对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;当确定所述第一缓存区中剩余存储空间不足时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;当确定存在内存不足OOM时,将第二缓存区中存储的解码成功的文件删除。一种内存释放装置,包括:存储单元,用于对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;转存单元,用于当确定所述第一缓存区中剩余存储空间不足时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;删除单元,用于当确定存在内存不足OOM时,将第二缓存区中存储的解码成功的文件删除。本专利技术实施例提供一种内存释放方法及装置,对文件进行解码后,先将解码成功的文件存储在第一缓存区中,在第一缓存区中剩余存储空间不足时,当需要存储新的解码成功的文件时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中,当确定存在OOM时,将第二缓存区中的解码成功的文件删除,因为第二缓存区中存储的文件为存储时间较长的文件,调用的概率较小,因此在存在OOM时删除第二缓存区中存储的文件不会影响移动终端的正常使用,且能够有效的解决OOM问题,从而实现了在避免影响移动终端的正常使用的情况下有效的解决OOM问题。附图说明图1为本专利技术实施例提供的一种内存释放方法流程图之一;图2为本专利技术实施例提供的一种链表哈希映射结构示意图;图3为本专利技术实施例提供的一种内存释放方法流程图之二;图4为本专利技术实施例提供的一种较佳的内存释放的方法流程图;图5为本专利技术实施例提供的一种内存释放装置结构示意图之一;图6为本专利技术实施例提供的一种内存释放装置结构示意图之二。具体实施方式本专利技术实施例提供一种内存释放方法及装置,对文件进行解码后,先将解码成功的文件存储在第一缓存区中,在第一缓存区中剩余存储空间不足时,当需要存储新的解码成功的文件时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中,当确定存在OOM时,将第二缓存区中的解码成功的文件删除,因为第二缓存区中存储的文件为存储时间较长的文件,调用的概率较小,因此在存在OOM时删除第二缓存区中存储的文件不会影响移动终端的正常使用,且能够有效的解决OOM问题,从而实现了在避免影响移动终端的正常使用的情况下有效的解决OOM问题。如图1所示,本专利技术实施例提供一种内存释放方法,包括:S101、对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;S102、当确定第一缓存区中剩余存储空间不足时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;S103、当确定存在OOM时,将第二缓存区中存储的解码成功的文件删除。本专利技术实施例设置了两个文件缓存区,对文件进行解码后,将解码成功的文件存储在第一缓存区内,当确定第一缓存区中剩余的存储空间不足时,则将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中。当存在OOM问题时,将第二缓存区中存储的解码成功的文件删除,由于删除的是存储时间较长,即调用概率较小的文件,因此不会影响移动终端的正常使用,同时,也有效的解决了OOM问题。其中被解码的文件可以为位图文件。较佳的,为了方便实现S102,可以将第一缓存区设置为链表哈希映射(LinkedHashMap)式缓存区,如图2所示,LinkedHashMap具有先进先出的特点,将第一缓存区设置为LinkedHashMap式缓存区,并预先设定第一缓存区能够存储的文件的最多个数,则在第一缓存区中存储的解码成功的文件的个数达到设定个数后,若需要继续在第一缓存区中存储解码成功的文件,第一缓存区中存储时间最久的文件由于是最先进入第一缓存区的,此时就会从第一缓存区中移出,被转存到第二缓存区中。本领域的技术人员也可以将第二缓存区设置为并发式哈希映射(ConcurrentHashMap)式缓存区,ConcurrentHashMap可以同时接受多个进程的访问,能够有效的加快移动终端的处理速度。其中,第一缓存区及第二缓存区的大小可以由本领域技术人员根据经验及移动终端总内存的大小自行设定,例如,当移动终端的总内存大小为1G时,可以将第一缓存区的内存大小设置为能够存储12-20个解码成功的文件,将第二缓存区的内存大小设置为能够存储6-10个解码成功的文件,较佳的,可以将第一缓存区的内存大小设置为能够存储16个解码成功的文件,将第二缓存区的内存大小设置为能够存储8个解码成功的文件,当移动终端的总内存大小为2G时,可以将第一缓存区的内存大小设置为能够存储24-40个解码成功的文件,将第二缓存区的内存大小设置为能够存储12-20个解码成功的文件,较佳的,可以将第一缓存区的内存大小设置为能够存储32个解码成功的文件,将第二缓存区的内存大小设置为能够存储16个解码成功的文件。当然,本领本文档来自技高网
...
一种内存释放方法及装置

【技术保护点】
一种内存释放方法,其特征在于,包括:对文件进行解码,并将解码成功的文件存储在第一缓存区中;当确定需要存储的新的解码成功的文件大小大于所述第一缓存区中的未使用的内存大小,或者确定所述第一缓存区中存储的解码成功的文件个数已达到设定个数时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;当确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小时,将第二缓存区中存储的解码成功的文件删除。

【技术特征摘要】
1.一种内存释放方法,其特征在于,包括:对文件进行解码,并将解码成功的文件存储在第一缓存区中;当确定需要存储的新的解码成功的文件大小大于所述第一缓存区中的未使用的内存大小,或者确定所述第一缓存区中存储的解码成功的文件个数已达到设定个数时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;当确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小时,将第二缓存区中存储的解码成功的文件删除。2.如权利要求1所述的方法,其特征在于,所述将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,具体为:将所述第一缓存区中存储时间最长的解码成功的文件转存到所述第二缓存区,并存储成软引用对象。3.如权利要求1所述的方法,其特征在于,所述当确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小时,将第二缓存区中存储的解码成功的文件删除,具体包括:当确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小时,将第二缓存区中所述软引用对象删除。4.如权利要求1所述的方法,其特征在于,还包括:确定需要获取解码成功的文件时,在所述第一缓存区中查找所述解码成功的文件;确定所述第一缓存区中不存在所述解码成功的文件时,在所述第二缓存区中查找所述解码成功的文件;确定所述第二缓存区中不存在所述解码成功的文件时,对所述解码成功的文件所对应的原文件进...

【专利技术属性】
技术研发人员:王磊
申请(专利权)人:青岛海信移动通信技术股份有限公司
类型:发明
国别省市:山东,37

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

1