内存泄露检测装置及方法、终端的制作方法_5

文档序号:9452997阅读:来源:国知局
平稳趋势)的次数时,认为该被测进程的内存占用值的变化趋势为递增趋势。如在一实施例中,该被测进程为微信应用进程,该预设时间是十分钟,对该被微信应用进程进行了五次时长为十分钟的采集,如在10点10分到10点20分采集了微信应用进程的多个内存采样信息(每次采样间隔为十秒钟,则采样得到60个内存采样信息),在10点30分到10点40分采集微信应用进程的多个内存采样信息(每次采样间隔为十秒钟,则采样得到60个内存采样信息),在10点50分到11点整采集微信应用进程的多个内存采样信息(每次采样间隔为十秒钟,则采样得到60个内存采样信息),在11点整到11点10分采集微信应用进程的多个内存采样信息(每次采样间隔为十秒钟,则采样得到60个内存采样信息),在11点10分到11点20分采集微信应用进程的多个内存采样信息(每次采样间隔为十秒钟,则采样得到60个内存采样信息),分别分析该微信应用进程的内存占用值在这5个时间段的子变化趋势,如该微信应用进程的内存占用值在10点10分到10点20分的时间段内的子变化趋势是递增趋势,该微信应用进程的内存占用值在10点30分到10点40分的时间段内的子变化趋势是递增趋势,该微信应用进程的内存占用值在10点50分到11点整的时间段内的子变化趋势是非递增趋势,该微信应用进程的内存占用值在11点整到11点10分的时间段内的子变化趋势是非递增趋势,该微信应用进程的内存占用值在11点10分到11点20分的时间段内的子变化趋势是递增趋势,则认为微信应用进程的内存占用值的变化趋势为递增趋势。
[0129]参照图10,图10为本发明内存泄露检测方法的第二实施例的流程示意图。
[0130]基于上述内存泄露检测方法的第一实施例,该方法还包括:S13、获取测试脚本,该测试脚本为shell脚本;
[0131]该采集被测进程的内存采样信息的步骤为:运行shell脚本采集被测进程的内存米样?目息O
[0132]在该步骤S13中,可直接从该被测进程所在的终端的存储器中读取,也可通过与该被测进程所在的终端进行有线连接或无线连接的其他终端获取测试脚本,如该被测进程所在的终端为安卓手机,与该安卓手机连接的终端为平板电脑,该平板电脑上保存有用于进行内存泄露检测的测试脚本,则从该平板电脑中获取测试脚本,并将该测试脚本保存在安卓手机中(如保存在安卓手机的SD卡中);在另一实施例中,该步骤S13中从该被测进程所在的终端的SD卡中读取测试脚本。
[0133]该测试脚本为shell脚本,该测试脚本运行在该被测进程所在的终端的底层。由于该shell脚本运行在该被测进程所在的终端的底层,因此可通过该shell脚本准确的采集到被测程序的内存采样信息。
[0134]参照图11,图11为本发明内存泄露检测方法的第三实施例的流程示意图。
[0135]基于上述内存泄露检测方法的第一实施例或第二实施例,该方法还包括:
[0136]S14、在该被测进程存在内存泄露时,根据该被测进程的内存占用值的变化趋势定位该被测进程发生内存泄露的对象或代码段。
[0137]在该被测进程存在内存泄露时,有可能只是由于该被测进程的某一部分代码段或对象在运行时导致内存泄露,在该步骤中,根据被测进程的内存占用值的变化趋势定位该被测进程发生内存泄露的对象或代码段,如,从该被测进程的内存占用值的变化趋势中找到内存占用值处于递增的时间点,再查找到在该时间点时,用户进行了一些什么操作,进而查找到对应的对象或代码段,即查找到发生内存泄露的对象或代码段,如在图5所示的某个被测进程的内存占用值的变化趋势的示意图,在第169秒到第190秒采集的内存占用值明显增加,且增加后的内存占用值比之前采集的内存占用值都大,因此可认为在第169秒到第190秒运行被测进程时发生了内存泄露,查找在该第169秒到第190秒时,用户进行了一些什么操作,进而查找到对应的对象或代码段,对发生内存泄露的对象或代码段进行定位。
[0138]基于上述内存泄露检测方法的第一实施例或第二实施例,该方法还包括:
[0139]将所述采集的被测进程的内存采样信息发送给监控终端,以使得所述监控终端生成所述被测进程的内存占用值的变化趋势,并根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。
[0140]该被测进程所在的终端与监控终端之间建立有线或无线连接,如在一实施例中,该被测进程所在的终端为安卓手机,该监控终端为平板电脑,该安卓手机与该平板电脑通过USB数据线连接,或该安卓手机与该平板电脑通过无线通讯技术连接。
[0141]在该步骤中,可将采集的被测进程的多个内存采样信息以日志文件形式发送给监控终端,监控终端在接收到被测进程的多个内存采样信息后,进行分析,以确定该被测进程是否存在内存泄露,具体的,该监控终端首先生成该被测进程的内存占用值的变化趋势,然后根据该被测进程的内存占用值的变化趋势,判断该被测进程是否存在内存泄露。
[0142]进一步的,本发明还提供一种终端,该终端包括上述任一实施例提供的的内存泄露检测装置。
[0143]通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如R0M/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例该的方法。
[0144]以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
【主权项】
1.一种内存泄露检测装置,其特征在于,该装置包括: 采集模块,用于采集被测进程的内存采样信息,所述内存采样信息包括采样时间、被测进程在所述采样时间对应的内存占用值; 生成模块,用于生成所述被测进程的内存占用值的变化趋势; 检测模块,用于根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。2.如权利要求1所述的内存泄露检测装置,其特征在于,所述检测模块还用于,在所述被测进程的内存占用值的变化趋势为递增趋势时,判断所述被测进程存在内存泄露,否则,判断所述被测进程不存在内存泄露。3.如权利要求1或2所述的内存泄露检测装置,其特征在于,所述装置还包括:获取模块,用于获取测试脚本,所述测试脚本为shell脚本; 所述采集模块,还用于运行shell脚本采集被测进程的内存采样信息。4.如权利要求1或2所述的内存泄露检测装置,其特征在于,所述装置还包括: 定位模块,用于在所述被测进程存在内存泄露时,根据所述被测进程的内存占用值的变化趋势定位被测进程发生内存泄露的对象或代码段。5.如权利要求1或2所述的内存泄露检测装置,其特征在于,所述装置还包括: 发送模块,用于将所述采集的被测进程的内存采样信息发送给监控终端,以使得所述监控终端生成所述被测进程的内存占用值的变化趋势,并根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。6.一种内存泄露检测方法,其特征在于,该方法包括: 采集被测进程的内存采样信息,所述内存采样信息包括采样时间、被测进程在所述采样时间对应的内存占用值; 生成所述被测进程的内存占用值的变化趋势; 根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。7.如权利要求6所述的内存泄露检测方法,其特征在于,所述根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露的步骤包括: 若所述被测进程的内存占用值的变化趋势为递增趋势,则判断所述被测进程存在内存泄露,否则,判断所述被测进程不存在内存泄露。8.如权利要求6或7所述的内存泄露检测方法,其特征在于,所述根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露的步骤之后,该方法还包括: 在所述被测进程存在内存泄露时,根据所述被测进程的内存占用值的变化趋势定位所述被测进程发生内存泄露的对象或代码段。9.如权利要求6或7所述的内存泄露检测方法,其特征在于,所述采集被测进程的内存采样信息,所述内存采样信息包括采样时间、被测进程在所述采样时间对应的内存占用值的步骤之后,该方法还包括: 将所述采集的被测进程的内存采样信息发送给监控终端,以使得所述监控终端生成所述被测进程的内存占用值的变化趋势,并根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。10.—种终端,其特征在于,所述终端包括如权利要求1-5任一项所述的内存泄露检测目.0
【专利摘要】本发明公开了一种内存泄露检测装置,该装置包括:采集模块,用于采集被测进程的内存采样信息,所述内存采样信息包括采样时间、被测进程在所述采样时间对应的内存占用值;生成模块,用于生成所述被测进程的内存占用值的变化趋势;检测模块,用于根据所述被测进程的内存占用值的变化趋势,判断所述被测进程是否存在内存泄露。本发明还公开了一种内存泄露检测方法和终端。采用本发明,可提高内存泄露检测的准确性。
【IPC分类】G06F11/36
【公开号】CN105204996
【申请号】CN201510615560
【发明人】杨显钧
【申请人】努比亚技术有限公司
【公开日】2015年12月30日
【申请日】2015年9月24日
当前第5页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1