CN103412825A - 一种内存释放方法及装置 - Google Patents

一种内存释放方法及装置 Download PDF

Info

Publication number
CN103412825A
CN103412825A CN2013101913239A CN201310191323A CN103412825A CN 103412825 A CN103412825 A CN 103412825A CN 2013101913239 A CN2013101913239 A CN 2013101913239A CN 201310191323 A CN201310191323 A CN 201310191323A CN 103412825 A CN103412825 A CN 103412825A
Authority
CN
China
Prior art keywords
file
buffer area
successfully decoded
determining
oom
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.)
Granted
Application number
CN2013101913239A
Other languages
English (en)
Other versions
CN103412825B (zh
Inventor
王磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN201610825879.2A priority Critical patent/CN106649146A/zh
Priority to CN201310191323.9A priority patent/CN103412825B/zh
Publication of CN103412825A publication Critical patent/CN103412825A/zh
Application granted granted Critical
Publication of CN103412825B publication Critical patent/CN103412825B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

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

Description

一种内存释放方法及装置
技术领域
本发明涉及移动终端开发技术,尤其涉及一种内存释放方法及装置。
背景技术
移动终端的内存通常指移动终端的物理内存,当存在应用进程时,移动终端会分配一部分物理内存给该应用进程,则这部分物理内存成为进程可使用内存,通常分配在托管堆上,由移动终端通过垃圾回收(Garbage Collection,GC)来管理,当移动终端的物理内存不足时,移动终端会根据垃圾回收(GarbageCollection,GC)策略清除一些没有被引用到的对象,释放空间,以解决内存不足(out of memory,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个解码成功的文件。
当然,本领域的技术人员可以采用其他可行方式设置第一缓存区及第二缓存区,此处不再一一叙述。
具体的,S102中确定第一缓存区中剩余存储空间不足,具体包括:
确定需要存储的新的解码成功的文件大小大于所述第一缓存区中的未使用的内存大小时;或者
确定所述第一缓存区中存储的解码成功的文件个数已达到设定个数。
实际应用中,当需要存储新的解码成功的文件时,可以首先判断第一缓存区中未使用内存大小是否大于需要存储的新的解码成功的文件的大小,若需要存储的新的解码成功的文件的大小大于第一缓存区中未使用内存的大小,例如需要存储的新的解码成功的文件的大小为30M,而第一缓存区中的剩余存储空间为20M,则确定第一缓存去中剩余存储空间不足,需要将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中去。或者,预先设定第一缓存区能够存储的解码成功的文件的最大个数,当需要存储新的解码成功的文件时,可以首先判断第一缓存区中存储的解码成功的文件的个数是否达到第一缓存区中能够存储的解码成功的文件的最大个数,若第一缓存区中存储的解码成功的文件个数达到第一缓存区能够存储的解码成功的文件的最大个数,例如设定的第一缓存区能够存储的解码成功的文件的个数为16个,则在需要存储新的解码成功的文件时,若确定了第一缓存区中已存储了16个解码成功的文件,则需要先将第一缓存区中存储时间最久的解码成功的文件转存到第二缓存区中,再将新的解码成功的文件存储到第一缓存区中去。
具体的,S103中确定存在OOM,包括:
确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小。
实际应用中,若需要转存到第二缓存区中的解码成功的文件的大小大于第二缓存区中未使用的内存大小,则可以确定出现了OOM,此时,可以先将第二缓存区中缓存的解码成功的文件删除,再将需要转存到第二缓存区中的解码成功的文件存储到第二缓存区中去。
进一步,由于软引用是一种需要通过SoftReference类来实现的引用方式,若一个对象为软引用对象,当移动终端出现OOM时,移动终端通常会删除该对象。因此可以将第二存储区中存储的文件存储为软引用对象,并设定当出现OOM时,移动终端将软引用对象删除,从而解决OOM的问题。具体的,S102中将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,具体为:
将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,并存储成软引用对象;
则S103具体为:
当确定存在OOM时,将软引用对象删除。
当然,本领域的技术人员可以采用其他可行方式在第二存储区中存储解码成功的文件;当然,本领域的技术人员也可以通过其他可行方式实现S103,此处仅提供一种较佳的实现方式,不再一一叙述。
解码成功的文件被存储到第一缓存区或第二缓存区后,当需要获取文件时,可以先在第一缓存区中查找需要获取的文件,若确定第一缓存区中不存在需要获取的文件,则在第二缓存区中进行查找,当确定第二缓存区中不存在需要获取的文件时,可以对需要获取的文件进行解码,具体的,如图3所示,本发明实施例提供的内存释放方法还包括:
S301、确定需要获取解码成功的文件时,在第一缓存区中查找需获取的解码成功的文件;
S302、确定第一缓存区中不存在需要获取的解码成功的文件时,在第二缓存区中查找需获取的解码成功的文件;
S303、确定第二缓存区中不存在需要获取的解码成功的文件时,对需要获取的解码成功的文件所对应的原文件进行解码。
本发明实施例提供一种较佳的内存释放方法,如图4所示,该方法包括:
S401、对文件进行解码,并将解码成功的文件存储在LinkedHashMap缓存区中;
S402、在LinkedHashMap缓存区中存储的解码成功的文件的个数达到设定个数后,当需要存储新的解码成功的文件时,将LinkedHashMap缓存区中存储时间最长的解码成功的文件转存到ConcurrentHashMap缓存区;
S403、当确定存在OOM时,将ConcurrentHashMap缓存区中存储的解码成功的文件删除。
S404、确定需要获取文件时,在LinkedHashMap缓存区中查找需获取的解码成功的文件;
S405、确定LinkedHashMap缓存区中不存在需要获取的解码成功的文件时,在ConcurrentHashMap缓存区中查找需获取的解码成功的文件;
S406、确定ConcurrentHashMap缓存区中不存在需要获取的解码成功的文件时,对需要获取的解码成功的文件的所对应的原文件进行解码。
如图5所示,本发明实施例提供一种内存释放装置,包括:
存储单元501,用于对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;
转存单元502,用于当确定第一缓存区中剩余存储空间不足时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;
删除单元503,用于当确定存在OOM时,将第二缓存区中存储的解码成功的文件删除。
本发明实施例设置了两个文件缓存区,对文件进行解码后,将解码成功的文件存储在第一缓存区内,当确定第一缓存区中剩余的存储空间不足时,则将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中。当存在OOM问题时,将第二缓存区中存储的解码成功的文件删除,由于删除的是存储时间较长,即调用频率较低的文件,因此不会影响移动终端的正常使用,同时,也有效的解决了OOM问题。
较佳的,为了更方便实现在第一缓存区中存储的解码成功的文件的个数达到设定个数后,当需要存储新的解码成功的文件时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,可以将第一缓存区设置为链表哈希映射(LinkedHashMap)式缓存区,LinkedHashMap具有先进先出的特点,将第一缓存区设置为LinkedHashMap式缓存区,并预先设定第一缓存区能够存储的文件的最多个数,则在第一缓存区中存储的解码成功的文件的个数达到设定个数后,若需要继续在第一缓存区中存储解码成功的文件,第一缓存区中存储时间最久的文件由于是最先进入第一缓存区的,此时就会从第一缓存区中移出,被转存到第二缓存区中。
本领域的技术人员也可以将第二缓存区设置为并发式哈希映射(ConcurrentHashMap)式缓存区,ConcurrentHashMap可以同时接受多个进程的访问,能够有效的加快移动终端的处理速度。
当然,本领域的技术人员可以采用其他可行方式设置第一缓存区及第二缓存区,此处不再一一叙述。
其中,第一缓存区及第二缓存区的大小可以由本领域技术人员根据经验及移动终端总内存的大小自行设定,例如,当移动终端的总内存大小为1G时,可以将第一缓存区的内存大小设置为能够存储12-20个解码成功的文件,将第二缓存区的内存大小设置为能够存储6-10个解码成功的文件,较佳的,可以将第一缓存区的内存大小设置为能够存储16个解码成功的文件,将第二缓存区的内存大小设置为能够存储8个解码成功的文件,当移动终端的总内存大小为2G时,可以将第一缓存区的内存大小设置为能够存储24-40个解码成功的文件,将第二缓存区的内存大小设置为能够存储12-20个解码成功的文件,较佳的,可以将第一缓存区的内存大小设置为能够存储32个解码成功的文件,将第二缓存区的内存大小设置为能够存储16个解码成功的文件。
具体的,转存单元502确定第一缓存区中剩余存储空间不足,具体用于:
确定需要存储的新的解码成功的文件大小大于第一缓存区中的未使用的内存大小;或者
确定第一缓存区中存储的解码成功的文件个数已达到设定个数时。
实际应用中,当需要存储新的解码成功的文件时,可以首先判断第一缓存区中未使用内存大小是否大于需要存储的新的解码成功的文件的大小,若需要存储的新的解码成功的文件的大小大于第一缓存区中未使用内存的大小,例如需要存储的新的解码成功的文件的大小为30M,而第一缓存区中的剩余存储空间为20M,则确定第一缓存去中剩余存储空间不足,需要将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中去。或者,预先设定第一缓存区能够存储的解码成功的文件的最大个数,当需要存储新的解码成功的文件时,可以首先判断第一缓存区中存储的解码成功的文件的个数是否达到第一缓存区中能够存储的解码成功的文件的最大个数,若第一缓存区中存储的解码成功的文件个数达到第一缓存区能够存储的解码成功的文件的最大个数,例如设定的第一缓存区能够存储的解码成功的文件的个数为16个,则在需要存储新的解码成功的文件时,若确定了第一缓存区中已存储了16个解码成功的文件,则需要先将第一缓存区中存储时间最久的解码成功的文件转存到第二缓存区中,再将新的解码成功的文件存储到第一缓存区中去。
具体的,删除单元503确定存在OOM,用于:
确定第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小。
实际应用中,若需要转存到第二缓存区中的解码成功的文件的大小大于第二缓存区中未使用的内存大小,则可以确定出现了OOM,此时,可以先将第二缓存区中缓存的解码成功的文件删除,再将需要转存到第二缓存区中的解码成功的文件存储到第二缓存区中去。
进一步,由于软引用是一种需要通过SoftReference类来实现的引用方式,若一个对象为软引用对象,当移动终端出现OOM时,移动终端通常会删除该对象。因此可以将第二存储区中存储的文件存储为软引用对象,并设定当出现OOM时,移动终端将软引用对象删除,从而解决OOM的问题。具体的,转存单元502将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,具体用于:
将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,并存储成软引用对象;
则删除单元503具体用于:
当确定存在OOM时,将软引用对象删除。
当然,本领域的技术人员可以采用其他可行方式在第二存储区中存储解码成功的文件;当然,本领域的技术人员也可以通过其他可行方式实现删除单元503,此处仅提供一种较佳的实现方式,不再一一叙述。
解码成功的文件被存储到第一缓存区或第二缓存区后,当需要获取文件时,可以先在第一缓存区中查找需要获取的文件,若确定第一缓存区中不存在需要获取的文件,则在第二缓存区中进行查找,当确定第二缓存区中不存在需要获取的文件时,再对需要获取的文件进行解码,具体的,如图6所示,本发明实施例提供的内存释放装置还包括:
第一查找单元504,用于确定需要获取解码成功的文件时,在第一缓存区中查找需获取的解码成功的文件;
第二查找单元505,用于确定第一缓存区中不存在需要获取的解码成功的文件时,在第二缓存区中查找需获取的解码成功的文件;
解码单元506,用于确定第二缓存区中不存在需要获取的解码成功的文件时,对需要获取的解码成功的文件所对应的原文件进行解码。
本发明实施例提供一种内存释放方法及装置,对文件进行解码后,先将解码成功的文件存储在第一缓存区中,在第一缓存区中剩余存储空间不足时,当需要存储新的解码成功的文件时,将第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区中,当确定存在OOM时,将第二缓存区中的解码成功的文件删除,因为第二缓存区中存储的文件为存储时间较长的文件,调用的概率较小,因此在存在OOM时删除第二缓存区中存储的文件不会影响移动终端的正常使用,且能够有效的解决OOM问题,从而实现了在避免影响移动终端的正常使用的情况下有效的解决OOM问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种内存释放方法,其特征在于,包括:
对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;
当确定所述第一缓存区中剩余存储空间不足时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;
当确定存在内存不足OOM时,将第二缓存区中存储的解码成功的文件删除。
2.如权利要求1所述的方法,其特征在于,所述将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,具体为:
将所述第一缓存区中存储时间最长的解码成功的文件转存到所述第二缓存区,并存储成软引用对象;
所述当确定存在内存不足OOM时,将第二缓存区中存储的解码成功的文件删除,具体为:
当确定存在OOM时,将所述软引用对象删除。
3.如权利要求1所述的方法,其特征在于,所述确定所述第一缓存区中剩余存储空间不足,具体包括:
确定需要存储的新的解码成功的文件大小大于所述第一缓存区中的未使用的内存大小;或者
确定所述第一缓存区中存储的解码成功的文件个数已达到设定个数。
4.如权利要求1所述的方法,其特征在于,所述确定存在OOM,包括:
确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小。
5.如权利要求1所述的方法,其特征在于,还包括:
确定需要获取解码成功的文件时,在所述第一缓存区中查找所述解码成功的文件;
确定所述第一缓存区中不存在所述解码成功的文件时,在所述第二缓存区中查找所述解码成功的文件;
确定所述第二缓存区中不存在所述解码成功的文件时,对所述解码成功的文件所对应的原文件进行解码。
6.一种内存释放装置,其特征在于,包括:
存储单元,用于对文件逐一进行解码,并将解码成功的文件逐一存储在第一缓存区中;
转存单元,用于当确定所述第一缓存区中剩余存储空间不足时,将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区;
删除单元,用于当确定存在内存不足OOM时,将第二缓存区中存储的解码成功的文件删除。
7.如权利要求6所述的装置,其特征在于,所述转存单元将所述第一缓存区中存储时间最长的解码成功的文件转存到第二缓存区,具体用于:
将所述第一缓存区中存储时间最长的解码成功的文件转存到所述第二缓存区,并存储成软引用对象;
所述删除单元具体用于:
当确定存在OOM时,将所述软引用对象删除。
8.如权利要求6所述的装置,其特征在于,所述转存单元确定所述第一缓存区中剩余存储空间不足,具体用于:
确定需要存储的新的解码成功的文件大小大于所述第一缓存区中的未使用的内存大小;或者
确定所述第一缓存区中存储的解码成功的文件个数已达到设定个数。
9.如权利要求6所述的装置,其特征在于,所述删除单元确定存在OOM,具体用于:
确定所述第二缓存区中未使用的内存大小小于当前需要转存到所述第二缓存区的解码成功的文件大小。
10.如权利要求6所述的装置,其特征在于,还包括:
第一查找单元,用于确定需要获取解码成功的文件时,在所述第一缓存区中查找需获取的所述解码成功的文件;
第二查找单元,用于确定所述第一缓存区中不存在所述解码成功的文件时,在所述第二缓存区中查找所述解码成功的文件;
解码单元,用于确定所述第二缓存区中不存在所述解码成功的文件时,对所述解码成功的文件所对应的原文件进行解码。
CN201310191323.9A 2013-05-21 2013-05-21 一种内存释放方法及装置 Active CN103412825B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610825879.2A CN106649146A (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置
CN201310191323.9A CN103412825B (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310191323.9A CN103412825B (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201610825879.2A Division CN106649146A (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置

Publications (2)

Publication Number Publication Date
CN103412825A true CN103412825A (zh) 2013-11-27
CN103412825B CN103412825B (zh) 2016-12-28

Family

ID=49605838

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201610825879.2A Pending CN106649146A (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置
CN201310191323.9A Active CN103412825B (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201610825879.2A Pending CN106649146A (zh) 2013-05-21 2013-05-21 一种内存释放方法及装置

Country Status (1)

Country Link
CN (2) CN106649146A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103678149A (zh) * 2013-12-19 2014-03-26 华为技术有限公司 数据处理的方法及设备
CN104714897A (zh) * 2013-12-13 2015-06-17 航天信息股份有限公司 一种android平台下基于缓存的列表处理方法
CN105389216A (zh) * 2015-12-15 2016-03-09 联想(北京)有限公司 一种剪切板数据缓存处理方法、装置和电子设备
CN106294188A (zh) * 2015-05-18 2017-01-04 中兴通讯股份有限公司 存储空间处理方法及装置
CN106569733A (zh) * 2015-10-12 2017-04-19 北京国双科技有限公司 缓存数据的处理方法和装置
CN110191246A (zh) * 2018-02-22 2019-08-30 京瓷办公信息系统株式会社 信息处理装置
CN111402110A (zh) * 2020-02-26 2020-07-10 无线生活(北京)信息技术有限公司 下载资源处理方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110134652A (zh) * 2019-05-10 2019-08-16 Oppo广东移动通信有限公司 缓存文件的回收方法、装置、电子设备及存储介质
CN114661232A (zh) * 2022-02-18 2022-06-24 阿里巴巴(中国)有限公司 快照数据的读取方法、装置、系统、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648879A (zh) * 2004-01-28 2005-08-03 三星电子株式会社 自适应垃圾收集方法及设备
CN101320353A (zh) * 2008-07-18 2008-12-10 四川长虹电器股份有限公司 嵌入式浏览器缓存设计方法
US20120237188A1 (en) * 2011-03-16 2012-09-20 Ingrasys Technology Inc. Network video recorder and method for recording video data in the network video recorder
CN102693305A (zh) * 2012-05-24 2012-09-26 惠州Tcl移动通信有限公司 一种文件信息预览方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9131899B2 (en) * 2011-07-06 2015-09-15 Apple Inc. Efficient handling of misaligned loads and stores
CN100573472C (zh) * 2008-04-15 2009-12-23 烟台东方电子信息产业股份有限公司 一种iec61850带缓冲报告的内存管理方法
CN101847127B (zh) * 2010-06-18 2012-01-25 福建星网锐捷网络有限公司 一种内存管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1648879A (zh) * 2004-01-28 2005-08-03 三星电子株式会社 自适应垃圾收集方法及设备
CN101320353A (zh) * 2008-07-18 2008-12-10 四川长虹电器股份有限公司 嵌入式浏览器缓存设计方法
US20120237188A1 (en) * 2011-03-16 2012-09-20 Ingrasys Technology Inc. Network video recorder and method for recording video data in the network video recorder
CN102693305A (zh) * 2012-05-24 2012-09-26 惠州Tcl移动通信有限公司 一种文件信息预览方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104714897A (zh) * 2013-12-13 2015-06-17 航天信息股份有限公司 一种android平台下基于缓存的列表处理方法
CN103678149A (zh) * 2013-12-19 2014-03-26 华为技术有限公司 数据处理的方法及设备
CN103678149B (zh) * 2013-12-19 2017-01-18 华为技术有限公司 数据处理的方法及设备
CN106294188A (zh) * 2015-05-18 2017-01-04 中兴通讯股份有限公司 存储空间处理方法及装置
CN106569733A (zh) * 2015-10-12 2017-04-19 北京国双科技有限公司 缓存数据的处理方法和装置
CN105389216A (zh) * 2015-12-15 2016-03-09 联想(北京)有限公司 一种剪切板数据缓存处理方法、装置和电子设备
CN110191246A (zh) * 2018-02-22 2019-08-30 京瓷办公信息系统株式会社 信息处理装置
CN111402110A (zh) * 2020-02-26 2020-07-10 无线生活(北京)信息技术有限公司 下载资源处理方法及装置

Also Published As

Publication number Publication date
CN106649146A (zh) 2017-05-10
CN103412825B (zh) 2016-12-28

Similar Documents

Publication Publication Date Title
CN103412825A (zh) 一种内存释放方法及装置
US11531625B2 (en) Memory management method and apparatus
JP6014925B2 (ja) メモリ回収方法および装置
JP6343438B2 (ja) コンピュータシステム及びコンピュータシステムのデータ管理方法
CN104657378A (zh) 一种文件缓存方法及装置
EP2665065A2 (en) Electronic device employing flash memory
CN102750174A (zh) 文件加载方法及装置
CN102541538A (zh) 一种基于移动终端的图片显示方法及装置
US20180275925A1 (en) Method and mobile terminal for processing write request
CN108762916B (zh) 一种内存管理方法、装置、设备及计算机可读存储介质
CA2896369C (en) Method for writing data into flash memory apparatus, flash memory apparatus, and storage system
CN104281528A (zh) 一种数据存储方法及装置
CN103198027A (zh) 一种存储文件和提供文件的方法和装置
CN103677674A (zh) 一种数据处理方法及装置
US20190370009A1 (en) Intelligent swap for fatigable storage mediums
CN104598394A (zh) 一种可动态分配的数据缓存方法及系统
CN107766258B (zh) 内存存储方法与装置、内存查询方法与装置
CN104021022A (zh) 一种分区调整方法及电子设备
CN103678577A (zh) 一种数据更新方法及装置
CN102736988A (zh) 存储器管理装置、存储器管理方法和控制程序
CN102467557B (zh) 重复数据删除的处理方法
US9286204B2 (en) Memory controller
CN110658999B (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
CN114020208A (zh) 数据垃圾回收方法、装置、计算机设备以及存储介质
CN104461382A (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
C14 Grant of patent or utility model
GR01 Patent grant