CN107943681A - 内存占用情况分析方法、装置、设备及计算机存储介质 - Google Patents
内存占用情况分析方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN107943681A CN107943681A CN201711295732.8A CN201711295732A CN107943681A CN 107943681 A CN107943681 A CN 107943681A CN 201711295732 A CN201711295732 A CN 201711295732A CN 107943681 A CN107943681 A CN 107943681A
- Authority
- CN
- China
- Prior art keywords
- memory
- ems memory
- statistical information
- memory occupation
- ems
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种内存占用情况分析方法,包括运行用户态进程,用户态进程调用动态库的内存接口进行内存申请和释放;动态库依据自身内存接口的调用情况进行内存统计,得到统计信息;动态库周期性地将统计信息输出至指定路径文件内存储;依据指定路径文件内的统计信息,分析内存占用情况。本发明不需要停止用户态进程,可动态统计内存的使用信息,实时性好;本发明还公开了一种基于上述方法的装置、设备及计算机可读存储介质。
Description
技术领域
本发明涉及系统状态监测技术领域,特别是涉及一种内存占用情况分析方法。本发明还涉及一种内存占用情况分析装置、设备及计算机可读存储介质。
背景技术
在开发用户态应用程序中,会经常需要检测内存的占用情况,来判断是碰到内存泄漏问题,还是存在程序占用内存过大情况。
目前一般使用开源的内存检测软件(如valgrind)去检测是否存在内存泄漏。但是,这种软件有个缺点就是必须终止用户态进程才能输出检测结果,供后续分析是否存在内存泄露以及变量或类在申请内存后的占用情况,因此目前的检测软件无法较实时的获取内存占用情况。
因此,如何提供一种实时性好的内存占用情况分析方法、装置、设备及计算机可读存储介质是本领域技术人员目前需要解决的问题。
发明内容
本发明的目的是提供一种内存占用情况分析方法,不需要停止用户态进程,可动态统计内存的使用信息,实时性好;本发明的另一目的是提供一种基于上述方法的装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供了一种内存占用情况分析方法,包括:
运行用户态进程,所述用户态进程调用动态库的内存接口进行内存申请和释放;
所述动态库依据自身内存接口的调用情况进行内存统计,得到统计信息;
所述动态库周期性地将所述统计信息输出至指定路径文件内存储;
依据所述指定路径文件内的所述统计信息,分析内存占用情况。
优选地,所述动态库为tcmalloc动态库。
优选地,所述分析内存占用情况具体包括:
依据所述统计信息,查找内存占用超出预设大小的变量或类;
判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
为解决上述技术问题,本发明还提供了一种内存占用情况分析装置,包括:
用户态进程运行模块,用于运行用户态进程,并通过调用动态库的内存接口进行所述用户态进程的内存申请和释放;
所述动态库,用于依据自身内存接口的调用情况进行内存统计,得到统计信息;周期性地将所述统计信息输出至指定路径文件内存储;
分析模块,用于依据所述指定路径文件内的所述统计信息,分析内存占用情况。
优选地,所述分析模块具体包括:
查找单元,用于依据所述统计信息,查找内存占用超出预设大小的变量或类;
判断单元,用于判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
为解决上述技术问题,本发明还提供了一种内存占用情况分析设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如以上任一项所述的内存占用情况分析方法的步骤。
为解决上述技术问题,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如以上任一项所述的内存占用情况分析方法的步骤。
本发明提供了一种内存占用情况分析方法,在动态库内增加内存统计的功能,用户态进程调用动态库内的内存接口进行内存申请和释放时,动态库会实时依据内存接口的情况进行内存统计,得到统计信息,进而使得后续可根据该统计信息,分析内存占用情况。可见,本发明不需要停止用户态进程,而是在用户态进程申请或释放内存时即实时的统计了内存的占用信息,采用动态统计的方式,实时性好。本发明还提供了一种基于上述方法的装置、设备及计算机可读存储介质,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种内存占用情况分析方法的过程的流程图;
图2为本发明提供的一种内存占用情况分析装置的结构示意图。
具体实施方式
本发明的核心是提供一种内存占用情况分析方法,不需要停止用户态进程,可动态统计内存的使用信息,实时性好;本发明的另一目的是提供一种基于上述方法的装置、设备及计算机可读存储介质。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种内存占用情况分析方法,参见图1所示,图1为本发明提供的一种内存占用情况分析方法的过程的流程图;该方法包括:
步骤s1:运行用户态进程,用户态进程调用动态库的内存接口进行内存申请和释放;
需要注意的是,这里的动态库指的是包含有内存接口,能够供用户态进程通过自身的内存接口进行内存申请和释放的动态库,例如,tcmalloc动态库,当然,本发明不限定动态库的类型。另外,由于原始的动态库并不包含内存统计的功能,为实现本发明的目的,需要对动态库进行修改,使其具有内存统计的功能。
步骤s2:动态库依据自身内存接口的调用情况进行内存统计,得到统计信息;
步骤s3:动态库周期性地将统计信息输出至指定路径文件内存储;
其中,这里的周期可以设置为1分钟,当然,也可设置为其他时间长度,但是为了保证统计的实时性,该周期不宜设置过大。
步骤s4:依据指定路径文件内的统计信息,分析内存占用情况。
另外,用户态进程在实际运行中,实时刷新指定路径文件内的(新增或删除)内存统计信息。
具体的,步骤s4的过程具体包括:
依据统计信息,查找内存占用超出预设大小的变量或类;
判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
本发明提供了一种内存占用情况分析方法,在动态库内增加内存统计的功能,用户态进程调用动态库内的内存接口进行内存申请和释放时,动态库会实时依据内存接口的情况进行内存统计,得到统计信息,进而使得后续可根据该统计信息,分析内存占用情况。可见,本发明不需要停止用户态进程,而是在用户态进程申请或释放内存时即实时的统计了内存的占用信息,采用动态统计的方式,实时性好。
本发明还提供了一种内存占用情况分析装置,参见图2所示,图2为本发明提供的一种内存占用情况分析装置的结构示意图。该装置包括:
用户态进程运行模块1,用于运行用户态进程,并通过调用动态库2的内存接口进行用户态进程的内存申请和释放;
动态库2,用于依据自身内存接口的调用情况进行内存统计,得到统计信息;周期性地将统计信息输出至指定路径文件内存储;
分析模块3,用于依据指定路径文件内的统计信息,分析内存占用情况。
作为优选地,分析模块3具体包括:
查找单元,用于依据统计信息,查找内存占用超出预设大小的变量或类;
判断单元,用于判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
本发明提供了一种内存占用情况分析装置,在动态库内增加内存统计的功能,用户态进程调用动态库内的内存接口进行内存申请和释放时,动态库会实时依据内存接口的情况进行内存统计,得到统计信息,进而使得后续可根据该统计信息,分析内存占用情况。可见,本发明不需要停止用户态进程,而是在用户态进程申请或释放内存时即实时的统计了内存的占用信息,采用动态统计的方式,实时性好。
本发明还提供了一种内存占用情况分析设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如以上任一项的内存占用情况分析方法的步骤。
本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上任一项的内存占用情况分析方法的步骤。
以上的几种具体实施方式仅是本发明的优选实施方式,以上几种具体实施例可以任意组合,组合后得到的实施例也在本发明的保护范围之内。应当指出,对于本技术领域的普通技术人员来说,相关专业技术人员在不脱离本发明精神和构思前提下推演出的其他改进和变化,均应包含在本发明的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种内存占用情况分析方法,其特征在于,包括:
运行用户态进程,所述用户态进程调用动态库的内存接口进行内存申请和释放;
所述动态库依据自身内存接口的调用情况进行内存统计,得到统计信息;
所述动态库周期性地将所述统计信息输出至指定路径文件内存储;
依据所述指定路径文件内的所述统计信息,分析内存占用情况。
2.根据权利要求1所述的方法,其特征在于,所述动态库为tcmalloc动态库。
3.根据权利要求1所述的方法,其特征在于,所述分析内存占用情况具体包括:
依据所述统计信息,查找内存占用超出预设大小的变量或类;
判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
4.一种内存占用情况分析装置,其特征在于,包括:
用户态进程运行模块,用于运行用户态进程,并通过调用动态库的内存接口进行所述用户态进程的内存申请和释放;
所述动态库,用于依据自身内存接口的调用情况进行内存统计,得到统计信息;周期性地将所述统计信息输出至指定路径文件内存储;
分析模块,用于依据所述指定路径文件内的所述统计信息,分析内存占用情况。
5.根据权利要求4所述的装置,其特征在于,所述分析模块具体包括:
查找单元,用于依据所述统计信息,查找内存占用超出预设大小的变量或类;
判断单元,用于判断查找出的变量或类是否属于正常的内存占用,若是,则输出内存占用过大的判断结果,若不是,输出存在内存泄露的判断结果。
6.一种内存占用情况分析设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至3任一项所述的内存占用情况分析方法的步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的内存占用情况分析方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711295732.8A CN107943681A (zh) | 2017-12-08 | 2017-12-08 | 内存占用情况分析方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711295732.8A CN107943681A (zh) | 2017-12-08 | 2017-12-08 | 内存占用情况分析方法、装置、设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107943681A true CN107943681A (zh) | 2018-04-20 |
Family
ID=61946259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711295732.8A Pending CN107943681A (zh) | 2017-12-08 | 2017-12-08 | 内存占用情况分析方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107943681A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343989A (zh) * | 2018-09-19 | 2019-02-15 | 郑州云海信息技术有限公司 | 用户态网络文件系统的内存检测方法、装置及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
US20100192133A1 (en) * | 2007-02-27 | 2010-07-29 | International Business Machines Corporation | Method and system for analyzing memory leaks occurring in java virtual machine data storage heaps |
CN103294588A (zh) * | 2012-02-22 | 2013-09-11 | 深圳富泰宏精密工业有限公司 | 内存检测系统及方法 |
CN107133144A (zh) * | 2017-05-02 | 2017-09-05 | 山东浪潮商用系统有限公司 | 一种动态监测堆内存使用错误的内存监测装置及方法 |
-
2017
- 2017-12-08 CN CN201711295732.8A patent/CN107943681A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100192133A1 (en) * | 2007-02-27 | 2010-07-29 | International Business Machines Corporation | Method and system for analyzing memory leaks occurring in java virtual machine data storage heaps |
CN101441566A (zh) * | 2008-11-18 | 2009-05-27 | 腾讯科技(深圳)有限公司 | 一种嵌入式平台和在嵌入式平台上动态链接程序的方法 |
CN103294588A (zh) * | 2012-02-22 | 2013-09-11 | 深圳富泰宏精密工业有限公司 | 内存检测系统及方法 |
CN107133144A (zh) * | 2017-05-02 | 2017-09-05 | 山东浪潮商用系统有限公司 | 一种动态监测堆内存使用错误的内存监测装置及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109343989A (zh) * | 2018-09-19 | 2019-02-15 | 郑州云海信息技术有限公司 | 用户态网络文件系统的内存检测方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111352921A (zh) | 基于elk的慢查询监控方法、装置、计算机设备及存储介质 | |
US6892378B2 (en) | Method to detect unbounded growth of linked lists in a running application | |
CN108089856A (zh) | 一种页面元素的监听方法及装置 | |
CN108563526A (zh) | 一种iOS卡顿监控策略 | |
CN104834601B (zh) | 基于Android系统的智能终端内存泄露的自动化测试方法 | |
CN107038107A (zh) | 一种获取应用卡顿信息的方法及装置 | |
CN104932963B (zh) | 管理终端的方法及装置 | |
CN106557426B (zh) | 一种用于分析Android端应用运行流畅度的方法和系统 | |
CN103444236B (zh) | 管理入口应用程序的方法和移动装置 | |
CN105607986A (zh) | 用户行为日志数据采集方法及装置 | |
CN106844576A (zh) | 一种异常检测方法、装置和监控设备 | |
CN110247796B (zh) | 监控告警方法、装置及相关设备 | |
CN108446199A (zh) | 一种应用卡顿的检测方法及装置 | |
CN104484282A (zh) | 一种内存回收方法和装置 | |
CN113806183B (zh) | 应用卡顿处理方法、装置、设备、存储介质和程序产品 | |
CN106997316A (zh) | 内存异常增长的检测系统及方法 | |
CN106021054A (zh) | 一种对bmc升降级稳定性进行测试的方法及装置 | |
CN103064925A (zh) | 定时处理网页的方法装置 | |
CN107590016A (zh) | 掉电重启识别方法及装置 | |
CN105302702B (zh) | 终端性能的检测方法及装置 | |
CN107423110A (zh) | 一种基于libvirt的虚拟机实时监测方法及其装置 | |
CN106332247A (zh) | 一种基于移动终端自动关闭后台冗余应用的方法及系统 | |
CN110266555B (zh) | 用于分析网站服务请求的方法 | |
CN107943681A (zh) | 内存占用情况分析方法、装置、设备及计算机存储介质 | |
CN107704317A (zh) | 智能设备及其应用管理方法和具有存储功能的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180420 |