CN102289410B - 基于mtk平台的内存分配状况监控方法 - Google Patents
基于mtk平台的内存分配状况监控方法 Download PDFInfo
- Publication number
- CN102289410B CN102289410B CN201110180904.3A CN201110180904A CN102289410B CN 102289410 B CN102289410 B CN 102289410B CN 201110180904 A CN201110180904 A CN 201110180904A CN 102289410 B CN102289410 B CN 102289410B
- Authority
- CN
- China
- Prior art keywords
- memory
- piece
- duty
- takies
- occupation
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种基于MTK平台的内存分配状况监控方法,包括如下步骤:获取系统整个内存块的起始地址、结束地址、内存总量;获取所有空闲块的起始地址、结束地址;绘制形成一个内存总量占空图,在内存图中,以第一颜色填充内存空闲块,以第二颜色填充内存占用块。在MTK平台的终端开发中,通过图形的方式展现应用内存的分配情况,可以在程序运行的任意时刻通过快捷键呼出调试界面,在调试界面可以清晰的展示当前应用对系统内存总量的占用情况、空闲情况。程序运行中,这种形象直观的实时内存占空情况获取方式,有助于帮助用户在开发过程中及时发现内存越界使用、内存碎片内存泄露等问题,及时对内存进行调试、优化。
Description
技术领域
本发明涉及一种基于 MTK 平台的内存分配状况监控方法。
背景技术
在编程时进行内存分配是十分重要的,动态内存可以在程序运行过程中帮助分配所需的内存空间,而不是在进程启动的时间就进行分配,然后,有效地管理动态内存同样也是非常重要的,特别是在嵌入式等资源受限环境的软件开发过程中。在利用 C 语言进行嵌入式程序开发过程中,常存在如下几个内存问题 :
1、内存越界使用,即使用了不该使用的内存,当内存输入超出了预分配的空间大小,就会覆盖该空间之后的一段存储区域,导致系统异常 ;
2、内存碎片,以小而不连续方式出现在系统不同位置的所有不可用的空闲内存 ;
3、内存泄露,以前分配的一片内存不再需要使用或无法访问时,没有被释放掉,导致某一进程的总可用内存减少,应用程序失去了对分配内存的控制 ;开发人员往往需要花费很大的施加和精力调试内存越界导致的死机问题、内存碎片导致的内存不足问题、或是内存泄漏导致的因可用内存数量减少而导致的设备性能降低的问题。
现有技术中,程序开发过程中的内存优化全部依靠打印等方式进行,不仅无法实时的显示当前的系统内存情况、应用内存情况,而且不够形象直观。
发明内容
本发明的目的在于克服现有技术中存在的问题,提出一种通过图形化的方式显示内存使用情况的基于 MTK 平台的内存分配状况监控方法。
为达到上述目的,本发明所采用的技术方案是 :
一种基于 MTK 平台的内存分配状况监控方法,包括如下步骤 :
(S001)获取系统整个内存块的起始地址、结束地址、内存总量 ;
(S002)获取所有空闲块的起始地址、结束地址 ;
(S003)绘制形成一个内存总量占空图,在所述的内存图中,以第一颜色填充内存空闲
块,以第二颜色填充内存占用块。
(S004)指定一个内存占用块 ,绘制形成一个第一级指定占用块的占空图。
应用上述技术方案,可以直观的了解当前系统内存的使用量、剩余量、碎片分布情
况,便于优化程序的内存管理 ;另外,在程序运行过程中,可以实时监控内存峰值情况,便于优化程序峰值内存 ;再者,采用实地址模式的程序编写过程中,经常出现内存越界造成的内存管理数据破坏,通过图形化的内存监控方法可以判断导致异常发生的原因及异常情况,例如,已申请内存无故变大、变小,剩余内存块异常变化等 ;最后,可以检测到内存泄漏的产生,如果剩余内存块在程序运行过程中持续减少,那很可能是程序中发生了内存泄漏。
上述技术方案还可以进一步优化 :
作为优选,它还包括如下步骤 :
(S005)获取指定占用块的起始地址、结束地址、占用量 ;
(S006)获取指定占用块内的所有空闲块的起始地址、结束地址 ;
(S007)在所述的指定占用块的占空图中,以第一颜色填充内存空闲块、以第二颜色填充内存占用块。
作为优选,它还包括如下步骤 :
(S008)对一个第一级指定占用块的占空图,指定一个第一级内存占用块,重复执行步骤(S005)~(S007),绘制形成一个第二级指定占用块的占空图 ;
(S009)对一个第 n-1 (n>2)级指定占用块的占空图,指定一个第n-1级内存占用块,重复执行步骤(S005)~(S007),绘制形成一个第 n 级指定占用块的占空图。
作为优选,它还进一步包括如下步骤 :
(S010)组合内存总量占空图、根据指定生成的一个第一级至第 n 级指定占用块的占
空图,形成内存调试界面并显示。
作为优选,设定优先级最高的当前应用所在的内存占用块为默认的指定占用块。
作为优选,内存调试界面通过设定的快捷键呼出。
作为优选,它还包括如下步骤 :
(S011)当运行的应用出现内存管理节点异常时,在内存调试界面显示错误信息。
由于上述技术方案的采用,本发明与现有技术相比,具有以下优点 :
在 MTK 平台的终端开发中,通过图形的方式展现应用内存的分配情况,可以在程序运行的任意时刻通过快捷键呼出调试界面,在调试界面可以清晰的展示当前应用对系统内存总量的占用情况、空闲情况。采用本发明所提供的技术方案还可以根据用户指定获取某一运行应用的详细内存占空情况,进一步的,获取下一级或多级的内存占空情况。程序运行中,这种形象直观的实时内存占空情况获取方式,有助于帮助用户在开发过程中及时发现内存越界使用、内存碎片内存泄露等问题,及时对内存进行调试、优化。
附图说明
图 1 为本发明的一种内存调试界面的示意图。
具体实施方式
下面结合附图,对本发明的具体实施方式做进一步说明。
一种基于 MTK 平台的内存分配状况监控方法,包括如下步骤 :
(S001)获取系统整个内存块的起始地址、结束地址、内存总量 ;
(S002)获取所有空闲块的起始地址、结束地址 ;
(S003)绘制形成一个内存总量占空图,如图 1 的第一行矩形图所示,在内存图中,以第一颜色填充内存空闲块,以第二颜色填充内存占用块 ;
步骤(S001)~(S003)形成的一个一定长度、一定高度的矩形条,矩形条的长度与系统
内存块的内存总量、地址形成对应关系,并且,基于所有内存空间均已被占用的假设,采用
第二颜色填充这个矩形条。对于任一空闲块,利用其起始地址、长度,根据对应关系找到其在内存总量矩形条上对应的位置,用第一颜色填充成内存空闲块。
内存空闲块采用遍历整个内存块的方式获得,自系统整个内存块的起始地址开始遍历整个内存块,当获取一个内存空闲块后,将其标识为当前空闲块,并判断当前空闲块是否为最后一个空闲块,如果不是,则采用第一颜色绘制当前空闲块,空闲块的高度与内存总量矩形条的高度相同 ;如果是,则显示最终的内存总量的占空图。
基于 MTK 平台的内存分配状况监控方法,还进一步包括如下步骤 :
(S004)用户指定一个内存占用块,或者根据设定,将优先级最高的当前应用或程序所在的内存占用块为默认的指定占用块 ;
(S005)获取指定占用块的起始地址、结束地址、占用量 ;
(S006)获取指定占用块内的所有空闲块的起始地址、结束地址 ;
(S007)绘制形成一个第一级指定占用块的占空图,如图 1 的第二行矩形图所示,在这个占空图中,以第一颜色填充内存空闲块、以第二颜色填充内存占用块,并且,指定占用块中的空闲块获取方式、指定占用块的占空图的形成方式与内存总量占空图的形成方式相同 ;
(S008)对一个第一级指定占用块的占空图,指定一个第一级内存占用块,重复执行步骤(S005)~(S007),获取一个第二级指定占用块的占空图 ;
(S009)对一个第 n-1 级指定占用块的占空图,指定一个第n-1级内存占用块,重复执行步骤(S005)~(S007),获取一个第 n 级指定占用块的占空图,在图 1 中,给出了基于 ModuleA 的内存占空情况生成的第一级指定占用块的占空图,以及基于 ModuleA 的 ModuleB 部分的内存占空情况生成的第二级指定占用块的占空图 ;
(S0010)组合内存总量占空图、根据指定生成的一个第一级至第 n 级指定占用块的占空图,形成内存调试界面并显示,内存调试界面通过设定的快捷键呼出,如图 1 所示 ;
(S011)当运行的应用出现内存管理节点异常时,在内存调试界面显示错误信息。
内存调试界面还同时显示内存总量、空闲量,指定内存占用块的起始地址、结束地址、以及当前指定内存占用块中,每个运行程序模块所对应的内存占用块的内存占用量。如果没有指定某个内存占用块,则显示内存总量占空图中,每个运行程序所占用的内存量。
应用本实施例所涉及的内存分配状况监控方法,可以直观的了解当前系统内存的使用量、剩余量、碎片分布情况,便于优化程序的内存管理 ;另外,在程序运行过程中,可以实时监控内存峰值情况,便于优化程序峰值内存 ;再者,采用实地址模式的程序编写过程中,经常出现内存越界造成的内存管理数据破坏,通过图形化的内存监控方法可以判断导致异常发生的原因及异常情况,例如,已申请内存无故变大、变小,剩余内存块异常变化等 ;最后,可以检测到内存泄漏的产生,如果剩余内存块在程序运行过程中持续减少,那很可能
是程序中发生了内存泄漏。
应理解,该实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改、等同替换等,这些等价形式同样落于本申请所附权利要求书所限定的范围。
Claims (2)
1.一种基于 MTK 平台的内存分配状况监控方法,包括如下步骤 :
(S001)获取系统整个内存块的起始地址、结束地址、内存总量 ;
(S002)获取所有空闲块的起始地址、结束地址 ;
(S003)绘制形成一个内存总量占空图,在所述的内存图中,以第一颜色填充内存空闲
块,以第二颜色填充内存占用块。
(S004)指定一个内存占用块 ,绘制形成一个第一级指定占用块的占空图。
2.根据权利要求1所述的基于 MTK 平台的内存分配状况监控方法,通过如下步骤,绘制形成一个第一级指定占用块的占空图:
(S005)获取指定占用块的起始地址、结束地址、占用量 ;
(S006)获取指定占用块内的所有空闲块的起始地址、结束地址 ;
(S007)在所述的指定占用块的占空图中,以第一颜色填充内存空闲块、以第二颜色填充内存占用块。
3.根据权利要求1或2所述的基于MTK平台的内存分配状况监控方法,其特征在于,它还包括如下步骤 :
(S008)对一个第一级指定占用块的占空图,指定一个第一级内存占用块,重复执行步骤(S005)~(S007),绘制形成一个第二级指定占用块的占空图 ;
(S009)对一个第 n-1 (n>2)级指定占用块的占空图,指定一个第n-1级内存占用块,重复执行步骤(S005)~(S007),绘制形成一个第 n 级指定占用块的占空图。
4.根据权利要求3所述的基于MTK平台的内存分配状况监控方法,其特征在于,它还进一步包括如下步骤 :
(S010)组合所述的内存总量占空图、根据指定生成的一个所述的第一级至第 n 级指定占用块的占空图,形成内存调试界面并显示。
5.根据权利要求4所述的基于MTK平台的内存分配状况监控方法,其特征在于,设定优先级最高的当前应用所在的内存占用块为默认的指定占用块。
6.根据权利要求5所述的基于MTK平台的内存分配状况监控方法,其特征在于,所述的内存调试界面通过设定的快捷键呼出。
7.根据权利要求4所述的基于MTK平台的内存分配状况监控方法,其特征在于,它还包括如下步骤 :
(S011)当运行的应用出现内存管理节点异常时,在所述的内存调试界面显示错误信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110180904.3A CN102289410B (zh) | 2011-06-30 | 2011-06-30 | 基于mtk平台的内存分配状况监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110180904.3A CN102289410B (zh) | 2011-06-30 | 2011-06-30 | 基于mtk平台的内存分配状况监控方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102289410A CN102289410A (zh) | 2011-12-21 |
CN102289410B true CN102289410B (zh) | 2014-03-12 |
Family
ID=45335852
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110180904.3A Expired - Fee Related CN102289410B (zh) | 2011-06-30 | 2011-06-30 | 基于mtk平台的内存分配状况监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102289410B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105426306A (zh) * | 2015-11-04 | 2016-03-23 | 武汉微创光电股份有限公司 | 一种系统测试中内存测试的方法 |
CN106776342B (zh) * | 2017-01-03 | 2020-04-21 | 百度在线网络技术(北京)有限公司 | 一种对移动应用的内存对象进行分析的方法和装置 |
CN109408235B (zh) * | 2018-10-19 | 2021-02-26 | 珠海金山网络游戏科技有限公司 | 一种数据处理方法及装置、一种计算设备及存储介质 |
CN112100022B (zh) * | 2020-08-14 | 2022-02-15 | 北京航空航天大学 | 一种安卓系统上监测Java对象内存泄漏时即时记录对象分配点的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752941A (zh) * | 2004-09-20 | 2006-03-29 | 华为技术有限公司 | 一种内存监控的装置及方法 |
CN101515247A (zh) * | 2009-03-30 | 2009-08-26 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
-
2011
- 2011-06-30 CN CN201110180904.3A patent/CN102289410B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1752941A (zh) * | 2004-09-20 | 2006-03-29 | 华为技术有限公司 | 一种内存监控的装置及方法 |
CN101515247A (zh) * | 2009-03-30 | 2009-08-26 | 福建星网锐捷网络有限公司 | 一种内存监控的方法和装置 |
Non-Patent Citations (1)
Title |
---|
聂仁良 等.《中文Windows XP课堂》.《中文Windows XP课堂》.清华大学出版社,2004,(第1版),81-83. * |
Also Published As
Publication number | Publication date |
---|---|
CN102289410A (zh) | 2011-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289410B (zh) | 基于mtk平台的内存分配状况监控方法 | |
DE112012003716B4 (de) | Erzeugen von kompiliertem Code, der Registeraktivität angibt | |
DE102009030544B4 (de) | Verfahren für ein koordiniertes Link-Power-Management auf einer Computerplattform, Computer und Rechensystem | |
WO2024041052A1 (zh) | 带宽划分方法、装置、设备及计算机可读存储介质 | |
CN106020967A (zh) | 一种混合式云资源自动扩容方法 | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
CN108351840B (zh) | 车辆控制装置 | |
CN110930291A (zh) | 一种gpu显存管理控制方法及相关装置 | |
CN108958891B (zh) | 一种虚拟机内存分配方法、装置及终端 | |
CN108762919A (zh) | 一种程序内存处理系统及方法 | |
CN112347636A (zh) | 一种基于Multi-Agent技术的装备保障仿真建模方法 | |
CN105260138A (zh) | 读写控制系统及方法 | |
CN105739982A (zh) | 一种系统休眠的方法及装置 | |
DE102010053333B4 (de) | Hochkomprimierte Programmablaufverfolgung | |
CN104750546A (zh) | 一种调整连接池的方法及系统 | |
CN109213701A (zh) | 共享io板的外设的控制方法、系统、设备及存储介质 | |
CN1307558C (zh) | 通信系统中分系统间的虚拟内存分配管理方法 | |
CN109521966A (zh) | 存储设备虚拟化方法、装置、终端及计算机可读存储介质 | |
CN114880079A (zh) | 基于强化学习的Kubernetes集群规模调整方法、系统及设备 | |
CN105867847B (zh) | 访存控制方法、装置及系统 | |
CN105740064B (zh) | Linux系统中防止服务端重启的方法及装置 | |
CN107329819A (zh) | 一种作业管理方法及装置 | |
CN111083057A (zh) | 一种流量控制方法、装置及计算机存储介质 | |
CN114416326A (zh) | 大数据管控方法、装置、管控系统及可读存储介质 | |
CN105867905A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140312 Termination date: 20170630 |
|
CF01 | Termination of patent right due to non-payment of annual fee |