CN103353860B - 内存管理方法及装置 - Google Patents
内存管理方法及装置 Download PDFInfo
- Publication number
- CN103353860B CN103353860B CN201310269695.9A CN201310269695A CN103353860B CN 103353860 B CN103353860 B CN 103353860B CN 201310269695 A CN201310269695 A CN 201310269695A CN 103353860 B CN103353860 B CN 103353860B
- Authority
- CN
- China
- Prior art keywords
- bitmap
- buffer memory
- threshold value
- exclusive buffer
- exclusive
- 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.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开一种内存管理方法及装置,以对内存进行精细化管理。本发明公开的内存管理方法,运行于软件客户端,其中,所述软件客户端嵌入有一全局的位图管理器,该方法包括:所述位图管理器为各进程开辟一专属缓存,并设置各专属缓存的阈值,该阈值小于所述软件客户端各进程的最小内存溢出阈值;当任一专属缓存有新的位图加入时,所述位图管理器判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种内存管理方法及装置。
背景技术
Android手机种类繁多,很多手机厂商生产出型号和性能相差较大的手机,如果希望软件能够很稳定运行在各种手机上,就必须控制好内存的使用,有些差的手机内存很小,如果一个进程开销的内存过大会被***直接终止。
Android***是基于java虚拟机运行的,java虚拟机对于图片的缓存有严格的控制,一旦超过一定的阀值就会报内存溢出异常,导致程序崩溃。
为此,在Android等***中,如何对VoIP等客户端处理图片时所占用的内存进行有效管理是个急需解决的问题。
发明内容
本发明的主要目的在于公开一种内存管理方法及装置,以对内存进行精细化管理。
为达上述目的,本发明公开一种内存管理方法,运行于软件客户端,其中,所述软件客户端嵌入有一全局的位图管理器,该方法包括:
所述位图管理器为各进程开辟一专属缓存,并设置各专属缓存的阈值,该阈值小于所述软件客户端各进程的最小内存溢出阈值;
当任一专属缓存有新的位图加入时,所述位图管理器判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
为达上述目的,本发明还公开一种嵌入软件客户端的位图管理器,包括:
专属缓存分配模块,用于为所述软件客户端的各进程开辟一专属缓存,并设置各专属缓存的阈值,其中该阈值小于所述软件客户端各进程的最小内存溢出阈值;
监控模块,用于当任一专属缓存有新的位图加入时,判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
与现有技术相比,本发明至少具有以下优点:
可以控制各进程在打开和查阅图像时,有效防止内存溢出。
附图说明
图1是本发明实施例公开的内存管理方法的流程示意图;
图2是本发明实施例公开的位图管理器的框图。
具体实施方式
下面结合说明书附图对本发明的具体实现方式做一详细描述。
实施例一
本发明实施例公开一种内存的管理方法。
如图1所示,该方法运行于一嵌入有一全局的位图管理器的软件客户端,该方法包括:
步骤S1、位图管理器为各进程开辟一专属缓存,并设置各专属缓存的阈值,该阈值小于所述软件客户端各进程的最小内存溢出阈值。
步骤S2、当任一专属缓存有新的位图加入时,位图管理器判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
举例说明:在该步骤S2中,Android***的java虚拟机对于图片的缓存有严格的控制,一个进程所使用的位图一般不能超过8兆(标准的是8M,有些厂商会适当调整该标准)。但是由于VoIP软件客户端的业务繁杂,有联系人头像,分享的各种图片,短信的各种图片,以及浏览大图对内存的开销,对内存的开销很大,为了统一控制,VoIP软件客户端的全局位图管理器为各专属缓存的阈值可设置为2兆。值得说明的是,该专属缓存的阈值不包括***界面的开销部分的bitmap内存。
在上述步骤中,进一步的,删除专属缓存中部分已有的位图使之不超过该专属缓存的阈值的方法包括但不限于:
获取该专属缓存中各位图的使用次数和使用时间戳;
按使用时间戳的先后顺序将位图分成前后使用的两部分;
将使用时间戳靠前的部分位图中按使用次数的多少排序;
依次数删除使用时间戳靠前的部分位图中使用次数少的位图,使之所述专属缓存不超过所述专属缓存的阈值。
本实施例中,考虑到浏览大图时对内存的开销比较大,为此,本发明实施例可以由软件客户端将查看大图的步骤设置为一个新的进程,以让位图管理器在处理浏览大图操作时分配一个新的专属缓存以存储大图。比如在查看联系人头像或分享主界面图片时,尤其是高清大图或多图,本发明实施例可以采用双进程,即多启动一个进程来保存图片数据,通过临时性的启动进程来增加应用程序可使用的内存。
进一步的,本发明实施例中,位图管理器还可以及时释放各专属缓存不再使用的内存,并可从两方面做改进:一方面避免强引用一些零时性的对象以避免内存泄漏,一方面及时做内存清理,释放不再使用的内存。
综上,本发明实施例可以控制各进程在打开和查阅图像时,有效防止内存溢出。
实施例二
与上述方法实施例对应的,本实施例提供一种内存管理装置,即位图管理器。
该位图管理器嵌入软件客户端。如图2所示,该位图管理器包括:
专属缓存分配模块1,用于为软件客户端的各进程开辟一专属缓存,并设置各专属缓存的阈值,其中该阈值小于软件客户端各进程的最小内存溢出阈值;较佳的,该专属缓存分配模块还用于将查看大图或多图的步骤视为一个新的进程,并分配一个新的专属缓存以供用户查阅及存储大图或多图。
监控模块2,用于当任一专属缓存有新的位图加入时,判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
可选的,如图2所示,上述监控模块包括:
信息获取单元21,用于获取该专属缓存中各位图的使用次数和使用时间戳;
时间戳排序单元22,用于按使用时间戳的先后顺序将位图分成前后使用的两部分;
使用次数排序单元23,用于将使用时间戳靠前的部分位图中按使用次数的多少排序;
清理单元24,用于依次数删除使用时间戳靠前的部分位图中使用次数少的位图,使之所述专属缓存不超过所述专属缓存的阈值。
较佳的,该位图管理器还进一步包括:
与上述监控模块连接的内存清理模块,用于及时释放各专属缓存不再使用的内存。
综上,本实施例公开的内存管理装置可以控制各进程在打开和查阅图像时,有效防止内存溢出。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种内存管理方法,运行于软件客户端,其特征在于,所述软件客户端嵌入有一全局的位图管理器,该方法包括:
所述位图管理器为各进程开辟一专属缓存,并设置各专属缓存的阈值,该阈值小于所述软件客户端各进程的最小内存溢出阈值;
当任一专属缓存有新的位图加入时,所述位图管理器判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
2.根据权利要求1所述的内存管理方法,其特征在于,所述删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值包括:
获取该专属缓存中各位图的使用次数和使用时间戳;
按使用时间戳的先后顺序将位图分成两部分;
将使用时间戳靠前的部分位图中按使用次数的多少排序;
依次数删除使用时间戳靠前的部分位图中使用次数少的位图,使之所述专属缓存不超过所述专属缓存的阈值。
3.根据权利要求1或2所述的内存管理方法,其特征在于,还包括:
所述软件客户端将查看大图或多图的步骤设置为一个新的进程,以让所述位图管理器分配一个新的专属缓存以存储大图或多图。
4.根据权利要求1或2所述的内存管理方法,其特征在于,还包括:
及时释放各专属缓存不再使用的内存。
5.根据权利要求3所述的内存管理方法,其特征在于,还包括:
及时释放各专属缓存不再使用的内存。
6.一种位图管理器,嵌入软件客户端,其特征在于,包括:
专属缓存分配模块,用于为所述软件客户端的各进程开辟一专属缓存,并设置各专属缓存的阈值,其中该阈值小于所述软件客户端各进程的最小内存溢出阈值;
监控模块,用于当任一专属缓存有新的位图加入时,判断是否超出该专属缓存的阈值,如果是,删除该专属缓存中部分已有的位图使之不超过该专属缓存的阈值。
7.根据权利要求6所述的位图管理器,其特征在于,所述监控模块包括:
信息获取单元,用于获取该专属缓存中各位图的使用次数和使用时间戳;
时间戳排序单元,用于按使用时间戳的先后顺序将位图分成两部分;
使用次数排序单元,用于将使用时间戳靠前的部分位图中按使用次数的多少排序;
清理单元,用于依次数删除使用时间戳靠前的部分位图中使用次数少的位图,使之所述专属缓存不超过所述专属缓存的阈值。
8.根据权利要求6或7所述的位图管理器,其特征在于,所述专属缓存分配模块还用于将查看大图或多图的步骤视为一个新的进程,并分配一个新的专属缓存以供用户查阅及存储大图或多图。
9.根据权利要求6或7所述的位图管理器,其特征在于,还包括:
与所述监控模块连接的内存清理模块,用于及时释放各专属缓存不再使用的内存。
10.根据权利要求8所述的位图管理器,其特征在于,还包括:
与所述监控模块连接的内存清理模块,用于及时释放各专属缓存不再使用的内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269695.9A CN103353860B (zh) | 2013-06-28 | 2013-06-28 | 内存管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310269695.9A CN103353860B (zh) | 2013-06-28 | 2013-06-28 | 内存管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103353860A CN103353860A (zh) | 2013-10-16 |
CN103353860B true CN103353860B (zh) | 2016-02-24 |
Family
ID=49310234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310269695.9A Active CN103353860B (zh) | 2013-06-28 | 2013-06-28 | 内存管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103353860B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103885753A (zh) * | 2014-03-03 | 2014-06-25 | 广州金山网络科技有限公司 | 缓存图片的管理方法、装置和客户端 |
CN105740064B (zh) * | 2014-12-12 | 2019-07-16 | 龙芯中科技术有限公司 | Linux***中防止服务端重启的方法及装置 |
WO2017128092A1 (zh) * | 2016-01-26 | 2017-08-03 | 王志强 | 手机文件清理相关技术信息发送的方法以及清理*** |
WO2017128091A1 (zh) * | 2016-01-26 | 2017-08-03 | 王志强 | 清理手机文件时的技术信息采集方法以及清理*** |
WO2017128093A1 (zh) * | 2016-01-26 | 2017-08-03 | 王志强 | 手机文件清理的方法以及清理*** |
WO2017143524A1 (zh) * | 2016-02-24 | 2017-08-31 | 康志强 | 智能手表的容量管理方法及*** |
CN108519912B (zh) * | 2018-04-04 | 2021-05-11 | 网易(杭州)网络有限公司 | 数据清洗方法、装置、计算机可读存储介质及电子设备 |
CN110166069A (zh) * | 2018-04-17 | 2019-08-23 | 北京丰信达科技有限公司 | 一种具有通讯功能的家庭黑板 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578516A (zh) * | 2003-06-26 | 2005-02-09 | 日本电气株式会社 | 数据流控制***、方法和程序 |
JP2011039849A (ja) * | 2009-08-12 | 2011-02-24 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
US8274521B2 (en) * | 2009-05-08 | 2012-09-25 | Oracle America, Inc. | System available cache color map |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式***的内存控制方法 |
-
2013
- 2013-06-28 CN CN201310269695.9A patent/CN103353860B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1578516A (zh) * | 2003-06-26 | 2005-02-09 | 日本电气株式会社 | 数据流控制***、方法和程序 |
US8274521B2 (en) * | 2009-05-08 | 2012-09-25 | Oracle America, Inc. | System available cache color map |
JP2011039849A (ja) * | 2009-08-12 | 2011-02-24 | Canon Inc | 情報処理装置及びその制御方法、並びにプログラム |
CN102915276A (zh) * | 2012-09-25 | 2013-02-06 | 武汉邮电科学研究院 | 一种用于嵌入式***的内存控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103353860A (zh) | 2013-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103353860B (zh) | 内存管理方法及装置 | |
JP7098007B2 (ja) | データベースのための遠隔データ同期方法及び装置 | |
CN102023973A (zh) | 一种应用缓存服务器与数据库同步的方法、装置和*** | |
CN111124277A (zh) | 一种深度学习数据集缓存方法、***、终端及存储介质 | |
CN105187464A (zh) | 一种分布式存储***中的数据同步方法、装置及*** | |
CN107040576A (zh) | 信息推送方法及装置、通讯*** | |
CN106453572A (zh) | 基于云服务器同步图像的方法及*** | |
CN103716384A (zh) | 跨数据中心实现云存储数据同步的方法和装置 | |
CN111813573A (zh) | 管理平台与机器人软件的通信方法及其相关设备 | |
CN104376096A (zh) | 基于缓冲区的异步更新的方法 | |
CN113282580A (zh) | 用于执行定时任务的方法、存储介质及服务器 | |
CN104679493A (zh) | 一种流程化的事件处理机制的改进方法 | |
CN111949389A (zh) | 基于Slurm的信息采集方法和装置、服务器、计算机可读存储介质 | |
CN109040284A (zh) | 信息展示及信息推送方法、装置、设备和存储介质 | |
CN103197950B (zh) | 插件虚拟机实现方法 | |
CN110209497B (zh) | 一种主机资源动态扩缩容的方法及*** | |
CN108154343B (zh) | 一种企业级信息***的应急处理方法及*** | |
CN111858612A (zh) | 基于图数据库的数据加速访问方法、装置及存储介质 | |
CN108958808A (zh) | 终端启动方法及装置、终端及存储介质 | |
CN108021456A (zh) | 触摸事件处理方法、装置和操作*** | |
CN116383207A (zh) | 一种数据标签管理方法、装置、电子设备和存储介质 | |
CN106131186A (zh) | 一种基于Redis分布式缓存的用电信息采集接口调试方法 | |
CN106254534A (zh) | 基于混合架构的分布式集群监控代理及方法 | |
CN102902593A (zh) | 基于缓存机制的协议分发处理*** | |
CN110019372A (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 |