首页> 中国专利> 一种自动监测应用程序进行内存信息的方法及装置

一种自动监测应用程序进行内存信息的方法及装置

摘要

本发明提出一种自动监测应用程序内存信息的方法和装置,其中方法包括:当预先设置的针对信息记录的第一计时器到期时,将内存信息保存入文件,并将所述第一计时器置为0,重新开始计时;当预先设置的针对绘图的第二计时器到期时,采用所述文件中的内存信息绘制内存信息曲线图,并将所述第二计时器置为0,重新开始计时。本发明能够自动实现对应用程序内存信息的监测,节约人力和时间成本,消除误操作的风险。

著录项

  • 公开/公告号CN103914366A

    专利类型发明专利

  • 公开/公告日2014-07-09

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201310002004.9

  • 发明设计人 杜磊;

    申请日2013-01-05

  • 分类号G06F11/34;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人阎敏

  • 地址 518044 广东省深圳市福田区振兴路赛格科技园2栋东403室

  • 入库时间 2024-02-19 23:58:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-05-31

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F11/34 申请日:20130105

    实质审查的生效

  • 2014-07-09

    公开

    公开

说明书

技术领域

本发明涉及内存监测技术领域,尤其涉及一种自动监测应用程序内存信 息的方法及装置。

背景技术

现有对应用程序进行内存监测的方案主要分为两种,一种是针对应用程序 整体的内存监控,一种是针对应用程序局部操作的内存监控。

以安卓(Android)应用程序为例,Android程序内存被分为2部分:native 和dalvik,dalvik即为堆,创建的对象在这里进行分配。dalvik的值用堆的大小 (Heapsize)表示。监测Heapsize的方式如下:

第一种,对应用程序整体的内存监控,操作步骤如下:对应用程序进行常 规功能测试,每隔一段时间(时间可以根据需要人为设定,比如1分钟,3分钟, 5分钟)使用Dalvik虚拟机调试监控服务(DDMS,Dalvik Debug Monitor Service) 或者命令行,查看heapsize的值并记录到一个新的excel表格或者txt文档中。 测试一段时间后(一般为3-4小时),根据excel或者txt文档的数据,画出heapsize 随时间变化的曲线图,分析应用程序是否有内存泄露的风险。一般情况下,若 heapsize曲线随着时间整体是上升趋势,则说明应用程序有内存溢出(OOM) 的风险。

第二种,对应用程序局部操作的内存监控,操作步骤如下:对应用程序的 某个局部操作(比如点击某个按钮,者滑动页面,或者几个操作的组合等)进 行测试,每进行一次操作后,使用DDMS或者命令行,查看heapsize的值并记 录到一个新的excel表格或者txt文档中。测试一段时间后(一般为10-15分钟), 根据excel或者txt文档的数据,画出heapsize随时间变化的曲线图,分析该局 部操作是否会有导致应用程序发生内存泄露的风险。一般情况下,若heapsize 曲线随着时间整体是上升趋势,则说明该局部操作有导致应用程序发生内存溢 出(OOM)的风险。

上述监测过程中,记录内存信息和绘图的步骤是由测试人员人工执行的, 因此会消耗大量的人力和时间成本,并存在误操作的潜在风险。

发明内容

本发明提供了一种自动监测应用程序内存信息的方法和装置,能够自动 实现对应用程序内存信息的监测,节约人力和时间成本,消除误操作的风险。

本发明的技术方案是这样实现的:

一种自动监测应用程序内存信息的方法,包括:

当预先设置的针对信息记录的第一计时器到期时,将内存信息保存入文件, 并将所述第一计时器置为0,重新开始计时;

当预先设置的针对绘图的第二计时器到期时,采用所述文件中的内存信息 绘制内存信息曲线图,并将所述第二计时器置为0,重新开始计时。

上述方法中,所述当第一计时器到期时将内存信息保存入文件之前进一步 包括:按照预先设定的周期监测应用程序,获取所述应用程序的内存信息,将 获取的内存信息以末尾增加的方式保存在数组中;

当预先设置的第一计时器到期时,将所述数组中的内存信息保存入文件, 并将所述数组中的内容删除。

上述方法中,将内存信息保存入文件的方式为:当所述第一计时器第一次 到期时,创建新的文件,将内存信息保存入所述文件;当所述第一计时器再次 到期时,在所述文件原有内容的基础上继续写入内存信息。

上述方法中,采用文件中的内存信息绘制内存信息曲线图的方式为:当所 述第二计时器第一次到期时,采用文件中的内存信息绘制内存信息曲线图,保 存所述内存信息曲线图;当所述第二计时器再次到期时,采用文件中的内存信 息绘制内存信息曲线图,保存所述内存信息曲线图,并删除前一次保存的内存 信息曲线图。

上述方法中,应用程序的内存信息可以为安卓(Android)程序的堆大小 (Heapsize)信息;

获取应用程序的内存信息的方式可以为:使用Dalvik虚拟机调试监控服务 (DDMS)或者命令行获取Android程序的Heapsize信息;

所述文件的格式为:.xls格式或.txt格式;

所述内存信息曲线图的格式为:.png格式或.jpg格式。

一种自动监测应用程序内存信息的装置,包括:

保存模块,用于当预先设置的针对信息记录的第一计时器到期时,将内存 信息保存入文件,并将所述第一计时器置为0,重新开始计时;

绘图模块,用于当预先设置的针对绘图的第二计时器到期时,采用所述文 件中的内存信息绘制内存信息曲线图,并将所述第二计时器置为0,重新开始计 时。

上述装置还包括:信息获取模块,用于按照预先设定的周期监测应用程序, 获取所述应用程序的内存信息,将获取的内存信息以末尾增加的方式保存在数 组中;

所述保存模块在预先设置的第一计时器到期时,将所述数组中的内存信息 保存入文件,并将所述数组中的内容删除。

上述装置中,保存模块将内存信息保存入文件的方式为:当所述第一计时 器第一次到期时,保存模块创建新的文件,将内存信息保存入所述文件;当所 述第一计时器再次到期时,保存模块在所述文件原有内容的基础上继续写入内 存信息。

上述装置中,绘图模块采用文件中的内存信息绘制内存信息曲线图的方式 为:当所述第二计时器第一次到期时,绘图模块采用文件中的内存信息绘制内 存信息曲线图,保存所述内存信息曲线图;当所述第二计时器再次到期时,绘 图模块采用文件中的内存信息绘制内存信息曲线图,保存所述内存信息曲线图, 并删除前一次保存的内存信息曲线图。

上述装置中,应用程序的内存信息可以为安卓(Android)程序的堆大小 (Heapsize)信息;

所述信息获取模块使用Dalvik虚拟机调试监控服务(DDMS)或者命令行 获取Android程序的Heapsize信息;

所述文件的格式为:.xls格式或.txt格式;

所述内存信息曲线图的格式为:.png格式或.jpg格式。

可见,本发明提出的自动监测应用程序内存信息的方法和装置,通过设 置定时器,自动记录应用程序的内存信息并绘图,从而实现节约人力和时间 成本,消除误操作的风险。

附图说明

图1为本发明提出的自动监测应用程序内存信息的方法流程图;

图2为本发明实施例一中获取内存信息的实现流程图;

图3为监测工具界面示意图;

图4为本发明实施例一中记录内存信息的实现流程图;

图5为本发明实施例一中绘制曲线图的实现流程图;

图6为本发明提出的自动监测应用程序内存信息的装置结构示意图。

具体实施方式

本发明提出一种自动监测应用程序内存信息的方法,如图1为本发明提出 的方法流程图,包括:

步骤101:当预先设置的针对信息记录的第一计时器到期时,将内存信息保 存入文件,并将所述第一计时器置为0,重新开始计时;

步骤102:当预先设置的针对绘图的第二计时器到期时,采用所述文件中的 内存信息存信息曲线图,并将所述第二计时器置为0,重新开始计时。

上述步骤101中的内存信息可以是预先获取并保存在数组中的,即,当第 一计时器到期时将内存信息保存入文件之前进一步包括:按照预先设定的周期 监测应用程序,获取所述应用程序的内存信息,将获取的内存信息以末尾增加 的方式保存在数组中;

当预先设置的第一计时器到期时,将所述数组中的内存信息保存入文件, 并将所述数组中的内容删除。

上述步骤101中,将内存信息保存入文件的方式可以为:当第一计时器第 一次到期时,创建新的文件,将内存信息保存入所述文件;当第一计时器再次 到期时,在所述文件原有内容的基础上继续写入内存信息。这里的文件可以是.xls 格式或者.txt等格式。

本发明每次从数组中获取的内存信息都保存在同一个文件中,相比现有技 术中将每次获取的内存信息分别保存在不同文件中的方式,本发明的存储方式 更便于后续绘制内存信息曲线图。

上述步骤102中,采用文件中的内存信息绘制内存信息曲线图的方式可以 为:当第二计时器第一次到期时,采用文件中的内存信息绘制内存信息曲线图, 保存所述内存信息曲线图;当第二计时器再次到期时,采用文件中的内存信息 绘制内存信息曲线图,保存所述内存信息曲线图,并删除前一次保存的内存信 息曲线图。这里的曲线图可以是.png格式或者.jpg等格式。

上述方法中,应用程序的内存信息可以为Android程序的Heapsize信息;

相应地,获取应用程序的内存信息的方式可以为:使用DDMS或者命令行 获取Android程序的Heapsize信息。

本发明采用间隔式绘图,即从保存内存信息开始后每隔一段时间进行一次 绘图。由于内存信息的监控需要一段时间,实时监控在开始阶段由于数据量不 足不能很好地体现内存的整体变化;相比现有技术中获取到内存信息后立即绘 图的方式,本发明采用的绘图方式能够弥补初期数据量不充分的问题。

以下举具体的实施例详细介绍。

实施例一:

在本实施例中,以监测Android程序的Heapsize信息为例进行介绍。包括 以下几个部分:

第一部分,如图2为本发明实施例一中获取内存信息的实现流程图。包括:

步骤201:将移动设备与PC连接,输入待监测应用程序的包名,点击“开始 监控”按钮。如图3为监测工具界面示意图。

步骤202:每间隔30秒时间获取一次内存信息(间隔时间可以根据需要灵 活调整),采用DDMS或者命令行获取Android程序的内存信息,将内存信息中 的Heapsize信息分离后以末尾增加的方式保存在数组A中。同时,将针对信息 记录的计时器T1及针对绘图的第二计时器T2置为0,开始计时。

第二部分,如图4为本发明实施例一中记录内存信息的实现流程图。包括:

步骤401:判断T1是否达到2分钟(本实施例以2分钟为例,具体数值可 以根据需要调整),如果达到,则执行步骤402。

步骤402:自动将数组A中保存的Heapsize信息写入excel表格中,删除数 组A中的数据,并将T1置为0,重新执行步骤401。

每次T1到期时,将Heapsize信息写入同一个excel表格中。

第三部分,如图5为本发明实施例一中绘制曲线图的实现流程图。包括:

步骤501:判断T2是否达到5分钟(本实施例以5分钟为例,具体数值可 以根据需要调整),如果达到,则执行步骤502。

步骤502:自动将excel表格中的数据进行Heapsize曲线图的绘制,并保存 为.png格式,删除前一次保存的.png格式图片;同时,将T2置为0,重新执行 步骤501。

在本实施例中,T1和T2可以根据实际需要进行设置,如T1=3m,T2=10m。 此外,保存格式也可以根据实际需要进行选择,如将数据保存为.txt格式,图片 保存为.jpg格式。通过绘制的Heapsize曲线图,可以分析该Android程序是否有 内存溢出的危险,一般情况下,若Heapsize曲线随着时间整体上是上升趋势, 则说明该Android程序有内存溢出(00M)的风险。

采用本实施例提出的方式,可以自动记录Android程序的Heapsize信息, 并自动采用该Heapsize信息绘制曲线图,由于整个过程是自动执行的,节约了 时间和人力的消耗,并排除了人为误操作的风险;同时,由于生成统一格式的 表格和曲线图,利于多个迭代数据和图标格式的统一性,利于应用程序进行纵 向对比。

本发明还提出一种自动监测应用程序内存信息的装置,如图6为该装置结 构示意图,包括:

保存模块601,用于当预先设置的针对信息记录的第一计时器到期时,将内 存信息保存入文件,并将所述第一计时器置为0,重新开始计时;

绘图模块602,用于当预先设置的针对绘图的第二计时器到期时,采用所述 文件中的内存信息绘制内存信息曲线图,并将所述第二计时器置为0,重新开始 计时。

上述装置还包括:

信息获取模块603,用于按照预先设定的周期监测应用程序,获取所述应用 程序的内存信息,将获取的内存信息以末尾增加的方式保存在数组中;

所述保存模块601在预先设置的第一计时器到期时,将所述数组中的内存 信息保存入文件,并将所述数组中的内容删除。

所述保存模块601将内存信息保存入文件的方式为:

当所述第一计时器第一次到期时,保存模块创建新的文件,将内存信息保 存入所述文件;

当所述第一计时器再次到期时,保存模块在所述文件原有内容的基础上继 续写入内存信息。

所述绘图模块602采用文件中的内存信息绘制内存信息曲线图的方式为:

当所述第二计时器第一次到期时,绘图模块采用文件中的内存信息绘制内 存信息曲线图,保存所述内存信息曲线图;

当所述第二计时器再次到期时,绘图模块采用文件中的内存信息绘制内存 信息曲线图,保存所述内存信息曲线图,并删除前一次保存的内存信息曲线图

上述装置中,应用程序的内存信息可以为Android程序的Heapsize信息;

信息获取模块603使用DDMS或者命令行获取Android程序的Heapsize信 息;

所述文件的格式可以为:.xls格式或.txt格式;

所述内存信息曲线图的格式可以为:.png格式或.jpg格式。

综上可见,本发明提出的自动监测应用程序内存信息的方法和装置,通 过设置定时器,自动记录应用程序的内存信息并绘图,从而实现节约人力和 时间成本,消除误操作的风险。并且,本发明将每次提取的内存信息统一保 存在一个文件中,方便后续绘图;采用间隔式获取的方式,能够弥补初期数 据量不充分的问题。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号