CN103353860B - 内存管理方法及装置 - Google Patents

内存管理方法及装置 Download PDF

Info

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
Application number
CN201310269695.9A
Other languages
English (en)
Other versions
CN103353860A (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.)
Guiyang Longmaster Information and Technology Co ltd
Original Assignee
Guiyang Longmaster Information and 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 Guiyang Longmaster Information and Technology Co ltd filed Critical Guiyang Longmaster Information and Technology Co ltd
Priority to CN201310269695.9A priority Critical patent/CN103353860B/zh
Publication of CN103353860A publication Critical patent/CN103353860A/zh
Application granted granted Critical
Publication of CN103353860B publication Critical patent/CN103353860B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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所述的位图管理器,其特征在于,还包括:
与所述监控模块连接的内存清理模块,用于及时释放各专属缓存不再使用的内存。
CN201310269695.9A 2013-06-28 2013-06-28 内存管理方法及装置 Active CN103353860B (zh)

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)

* Cited by examiner, † Cited by third party
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系统中防止服务端重启的方法及装置
WO2017128093A1 (zh) * 2016-01-26 2017-08-03 王志强 手机文件清理的方法以及清理系统
WO2017128092A1 (zh) * 2016-01-26 2017-08-03 王志强 手机文件清理相关技术信息发送的方法以及清理系统
WO2017128091A1 (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)

* Cited by examiner, † Cited by third party
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 武汉邮电科学研究院 一种用于嵌入式系统的内存控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
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) データベースのための遠隔データ同期方法及び装置
CN102521712B (zh) 一种流程实例数据处理方法和装置
CN105446799A (zh) 一种计算机系统中进行规则管理的方法及系统
CN103176892B (zh) 一种页面监控方法及系统
CN111124277A (zh) 一种深度学习数据集缓存方法、系统、终端及存储介质
CN107040576A (zh) 信息推送方法及装置、通讯系统
WO2019104974A1 (zh) 基于dubbo平台的服务自动启停方法、服务器及存储介质
CN103716384A (zh) 跨数据中心实现云存储数据同步的方法和装置
CN106648994A (zh) 一种备份操作日志的方法,设备和系统
CN111813573A (zh) 管理平台与机器人软件的通信方法及其相关设备
CN104376096A (zh) 基于缓冲区的异步更新的方法
CN109040284A (zh) 信息展示及信息推送方法、装置、设备和存储介质
CN112835978A (zh) 一种数据存储方法、装置及计算机设备
CN105939203B (zh) 表项同步方法以及装置
CN110209497B (zh) 一种主机资源动态扩缩容的方法及系统
CN108154343B (zh) 一种企业级信息系统的应急处理方法及系统
CN111858612A (zh) 基于图数据库的数据加速访问方法、装置及存储介质
CN108021456A (zh) 触摸事件处理方法、装置和操作系统
CN116383207A (zh) 一种数据标签管理方法、装置、电子设备和存储介质
CN106254534A (zh) 基于混合架构的分布式集群监控代理及方法
CN102902593A (zh) 基于缓存机制的协议分发处理系统
CN109656936A (zh) 数据同步方法、装置、计算机设备和存储介质
CN110019372A (zh) 数据监控方法、装置、服务器及存储介质
CN105743669A (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