CN104866409A - 内存泄露监控方法和装置 - Google Patents

内存泄露监控方法和装置 Download PDF

Info

Publication number
CN104866409A
CN104866409A CN201510290518.8A CN201510290518A CN104866409A CN 104866409 A CN104866409 A CN 104866409A CN 201510290518 A CN201510290518 A CN 201510290518A CN 104866409 A CN104866409 A CN 104866409A
Authority
CN
China
Prior art keywords
intended application
sampling time
sample information
committed memory
monitoring sample
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
Application number
CN201510290518.8A
Other languages
English (en)
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.)
Beijing Xiaomi Technology Co Ltd
Xiaomi Inc
Original Assignee
Xiaomi Inc
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 Xiaomi Inc filed Critical Xiaomi Inc
Priority to CN201510290518.8A priority Critical patent/CN104866409A/zh
Publication of CN104866409A publication Critical patent/CN104866409A/zh
Pending legal-status Critical Current

Links

Abstract

本公开提供一种内存泄露监控方法和装置,其中方法包括:获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。本公开可以实时的监控内存泄露。

Description

内存泄露监控方法和装置
技术领域
本公开涉及计算机技术,特别涉及一种内存泄露监控方法和装置。
背景技术
随着计算机技术的不断发展,人们可以在自己的智能手机上使用多种应用(APP),例如,可以针对Android系统的手机开发各种类型的Android应用,以供用户在手机上下载和使用。
发明内容
本公开提供一种内存泄露监控方法和装置,以在Android应用的开发阶段及时发现内存泄露的情况。
根据本公开实施例的第一方面,提供一种内存泄露监控方法,包括:
获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
根据本公开实施例的第二方面,提供一种内存泄露监控方法,包括:
接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
根据本公开实施例的第三方面,提供一种内存泄露监控装置,包括:
监控采集模块,用于获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
信息传输模块,用于将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
根据本公开实施例的第四方面,提供一种内存泄露监控装置,包括:
信息接收模块,用于接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
泄露分析模块,用于根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
根据本公开实施例的第五方面,提供一种测试终端,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在采样时间由压力测试触发的占用内存;将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
根据本公开实施例的第六方面,提供一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
本公开的实施例提供的技术方案可以包括以下有益效果:通过在监控时间内定期采集应用的采样信息,可以根据采样信息分析出应用占用内存情况的变化,从而发现内存泄露的情况,该方式可以实时的监控内存泄露。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种内存泄露监控的实施场景;
图2是根据一示例性实施例示出的一种内存泄露方法的流程图;
图3是根据一示例性实施例示出的另一种内存泄露方法的流程图;
图4是根据一示例性实施例示出的内存变化曲线图;
图5是根据一示例性实施例示出的一种内存泄露装置的结构图;
图6是根据一示例性实施例示出的另一种内存泄露装置的结构图;
图7是根据一示例性实施例示出的又一种内存泄露装置的结构图;
图8是根据一示例性实施例示出的一种测试终端的框图;
图9是根据一示例性实施例示出的一种服务器的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
针对Android操作系统的智能手机开发的Android应用,可能会出现由于编码不规范导致的应用内存泄露,内存泄露即应用在使用内存之后未完全释放,导致应用占用内存逐渐增加;如果应用发生内存泄露,将可能导致应用无法正常运行,严重影响用户体验。本公开的内存泄露监控方法,将可以在Android应用的开发阶段,就实时监控应用是否发生内存泄露的情况,这样可以在出现OOM(Out of Memory,内存泄露)异常时,提醒开发者及时优化应用开发程序,提升应用的稳定性。
图1示例了本公开的内存泄露监控的实施场景,可以通过测试终端11和服务器12共同实现对内存泄露的监控。其中,测试终端11可以提供所要监控的Android应用的运行环境,例如可以提供Android操作系统,并在该系统运行开发的Android应用。测试终端11可以在运行Android应用时,获取监控该应用运行的信息,并将信息传输至服务器12进行处理,以根据信息确定测试终端11运行的Android应用是否发生了内存泄露。
测试终端11执行图2示例的监控方法,服务器12执行图3所示的监控方法,如下所示的流程:
201、获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
202、将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
301、接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
302、根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
其中,在201中,假设开发了一款Android应用,想要测试该应用在使用中是否会发生内存泄露,比如,需要对目标客户K,保证该Android应用在客户K使用时不会出现OOM异常,以保证用户体验良好。为此,可以在安装了Android系统的测试终端11运行上述的Android应用。
本公开还可以对应用进行压力测试。压力测试即模拟客户K对应用的使用操作,例如点击该应用中的操作选项,使得应用运行对应的功能,该压力测试将触发应用占用内存,应用为了处理压力测试对应的操作,会向系统申请占用内存,并在使用完成后释放该内存。本实施例可以进行多次压力测试,比如多次功能点击,以使得上述Android应用进行多次的内存申请和释放。
示例性的,比如可以设定在预定时间内(例如,1分钟)进行预设次数的压力测试(例如,点击十次Android应用中的导航功能按钮)。在进行压力测试的预定时间内,例如上述示例性的进行压力测试的预设1分钟内,测试终端11可以在201中获取监控信息,监控Android应用(该被监控的应用可以称为目标应用)在这段时间内的占用内存的情况。
例如,在预设时间内可以定期采集Android应用的监控采样信息,比如每隔100ms采集一次,那么在预设时间1分钟内就可以采集600次。每一次采集的监控采样信息可以包括:采样时间、以及对应的Android应用的占用内存。也就是说,可以每隔一段时间监控Android应用占用了多少内存。可以通过如下的循环设计,使得测试终端可以自动的定期采集监控采样信息:
BEGIN
While true;do
打开log文件meminfo.log;
打印当前时间到meminfo.log;
通过应用包名查找到所需监控应用的pid;
通过pid调用系统接口输出应用对应的进程占用的USS(进程独自占用的物理内存);
休眠指定时间;
Done
END
上述通过“While true;do”语句限定了一个循环体,使得测试终端可以循环的反复执行上述的过程,例如上述的“休眠指定时间”,比如可以是休眠100ms,也就是执行上述的信息采集后,间隔100ms以后再次执行,从而形成了每隔100ms就采集一次监控应用的内存占用信息。
在每一次执行监控采样信息的采集时,所做的处理可以包括:例如,可以通过应用包名查找到所需监控的Android应用的pid(进程ID),其中,Android应用在运行后,Android操作系统可以为该运行的应用启动一个对应的进程,即该应用的进程,并且每个进程都有个进程标识,可以称为进程ID,例如,pid2537。应用在每次启动时,获得的进程ID有可能不同,但是进程ID都总是与应用包名对应,例如Android应用的应用包名为daohang,系统在应用运行时,总是为该应用包名分配对应的进程ID。因此,可以根据应用包查找到该应用的进程标识。
Android应用占用的内存即上述的应用对应的进程占用的内存,可以将Android应用的进程标识对应的内存确定为应用的占用内存,并将该内存输出到log文件meminfo.log进行存储,同时存储Android应用占用上述内存时的时间,可以称为采样时间,将该时间也存储在meminfo.log。因此,在每一次采样时,都将采样时间及对应的应用占用内存存储在log文件meminfo.log中,该文件可以称为内存监控日志文件,该文件可以存储定期采样的多个监控采样信息。
在202和301中,测试终端11可以将meminfo.log上传到服务器12,以供服务器12分析该log文件存储的信息来确定Android应用是否发生内存泄露。其中,log文件中存储了很多监控采样信息,可以将上述例子中的预设时间内(例如,1分钟)内的信息传输至服务器12。
在302中,服务器12将分析测试终端11上传的监控采样信息,以据此判断所监控的Android应用是否发生内存泄露。如果Android应用发生了内存泄露,那么由于应用不能完全释放占用的内存,随着时间的增长,该应用所占用的内存也是不断增加的,据此就可以确定应用发生了内存泄露。
本实施例并不限定服务器12进行上述信息分析的方式,例如,服务器12可以是使用数学统计方法,分析得到所监控的Android应用占用的内存随着时间增长的趋势,确定应用发生内存泄露;或者,服务器12还可以是根据监控采样信息得到图4所示的曲线图,通过对曲线图的分析或者测试人员观察该曲线图得到内存随时间的变化趋势。
如图4所示,可以是服务器12根据接收到的监控采样信息得到,例如该曲线图是由多个采样点连接得到,每个采样点对应的横坐标是监控采样信息中的一个采样时间,对应的纵坐标是在该采样时间对应的应用占用内存(例如,8600KB),从而得到图4示例的占用内存随着采样时间变化的曲线图。图4很明显的示出了内存在反复中稳定上升,也就是目标应用的占用内存随采样时间递增,则可以确定该的Android应用发生内存泄露。
有时应用的内存泄露是微量的,如果监控采样的时间较短,少量几次的监控采样可能从曲线图中不能明显看出内存随时间的增长趋势,此时就需要多做几次采样,或者延长采样监控时间,本实施例的测试终端11可以接收对预设时间的变更,并根据变更后的时间进行压力测试和监控采样,以通过延长时间后的曲线更明显的确定应用占用内存随时间是递增的。
此外,如果所监控的Android应用进行了重新启动,系统为该应用重新分配了进程ID,可能应用的进程ID发生变化。此时,测试终端11在监控采样时,如果在获取进程ID时发现该进程发生了变化,则可以据此获知应用发生了重启,那么不同进程ID对应的占用内存数据,就不能如图4示例的将信息显示在同一张曲线图上,即图4中的曲线图是对于同一次启动中的Android应用监控采样得到的信息。
本公开的内存泄露监控方法,对所监控的Android应用占用内存的情况是实时监控的,例如每隔100ms就采样一次占用内存,并且还能根据实时采样的信息得到内存变化趋势图,这种实时监控的方式能够保证及时快速的发现内存泄露的发生,并且,曲线图的形式也便于测试人员或开发人员观察,很明显的看到内存泄露的发生,进一步有助于提高泄露发现的效率。通过在Android应用的开发阶段就及时发现内存泄露,提高了应用的稳定性和可靠性,缩短了软件开发的生命周期,缩减开发成本。
为了使得测试终端执行图2示例的内存泄露监控方法,本公开提供了一种内存泄露监控装置,该装置设置在测试终端;如下简单说明该装置的结构,具体原理可以结合参见方法实施例。如图5所示,内存泄露监控装置可以包括:监控采集模块51和信息传输模块52;其中,
监控采集模块51,用于获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
信息传输模块52,用于将所述预定时间的多个监控采样信息发送至服务器,以使得服务器根据所述多个监控采样信息确定目标应用的内存泄露。
如图6所示,该装置中的监控采集模块51可以包括:进程查找单元511、内存获取单元512和信息存储单元513;其中,
进程查找单元511,用于获取与所述目标应用的应用包名对应的目标应用的进程标识;
内存获取单元512,用于根据进程标识,得到目标应用的占用内存;
信息存储单元513,用于将所述占用内存及对应的采样时间,存储在内存监控日志文件中。
为了使得测试终端执行图3示例的内存泄露监控方法,本公开提供了一种内存泄露监控装置,该装置设置在服务器;如下简单说明该装置的结构,具体原理可以结合参见方法实施例。如图7所示,内存泄露监控装置可以包括:信息接收模块71和泄露分析模块72;其中,
信息接收模块71,用于接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
泄露分析模块72,用于根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
进一步的,泄露分析模块72,用于输出所述占用内存随着所述采样时间变化的曲线图,以使得在所述曲线图显示所述目标应用的占用内存随采样时间递增时,确定所述目标应用发生内存泄露。
图8是根据一示例性实施例示出的一种测试终端800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件818。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法:获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在采样时间由压力测试触发的占用内存;将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理部件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电力组件808为装置800的各种组件提供电力。电力组件808可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件818发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件818被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件818经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件818还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
图9是根据一示例性实施例示出的一种服务器900的框图。例如,参照图9,装置900包括处理组件922,其进一步包括一个或多个处理器,以及由存储器932所代表的存储器资源,用于存储可由处理部件922的执行的指令,例如应用程序。存储器932中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件922被配置为执行指令,以执行上述方法:接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
装置900还可以包括一个电源组件926被配置为执行装置900的电源管理,一个有线或无线网络接口950被配置为将装置900连接到网络,和一个输入输出(I/O)接口958。装置900可以操作基于存储在存储器932的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由装置的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (11)

1.一种内存泄露监控方法,其特征在于,包括:
获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
2.根据权利要求1所述的方法,其特征在于,所述获取在进行所述压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,包括:
获取与所述目标应用的应用包名对应的目标应用的进程标识;
根据所述进程标识,得到所述目标应用的占用内存;
将所述占用内存及对应的采样时间,存储在内存监控日志文件中。
3.根据权利要求1所述的方法,其特征在于,还包括:
接收对所述预定时间的变更。
4.一种内存泄露监控方法,其特征在于,包括:
接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
5.根据权利要求4所述的方法,其特征在于,所述根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露,包括:
输出所述占用内存随着所述采样时间变化的曲线图;
如果所述曲线图显示所述目标应用的占用内存随采样时间递增,则确定所述目标应用发生内存泄露。
6.一种内存泄露监控装置,其特征在于,包括:
监控采集模块,用于获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
信息传输模块,用于将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
7.根据权利要求6所述的装置,其特征在于,所述监控采集模块包括:
进程查找单元,用于获取与所述目标应用的应用包名对应的目标应用的进程标识;
内存获取单元,用于根据所述进程标识,得到所述目标应用的占用内存;
信息存储单元,用于将所述占用内存及对应的采样时间,存储在内存监控日志文件中。
8.一种内存泄露监控装置,其特征在于,包括:
信息接收模块,用于接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;
泄露分析模块,用于根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
9.根据权利要求8所述的装置,其特征在于,
所述泄露分析模块,用于输出所述占用内存随着所述采样时间变化的曲线图,以使得在所述曲线图显示所述目标应用的占用内存随采样时间递增时,确定所述目标应用发生内存泄露。
10.一种测试终端,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:获取在对监控的目标应用进行压力测试的预定时间内,定期采集的所述目标应用的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在采样时间由压力测试触发的占用内存;将所述预定时间的多个监控采样信息发送至服务器,以使得所述服务器根据所述多个监控采样信息确定所述目标应用的内存泄露。
11.一种服务器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:接收测试终端发送的预定时间内的多个监控采样信息,每个所述监控采样信息包括:采样时间、以及对应的所述目标应用在所述采样时间由所述压力测试触发的占用内存;根据所述采样时间及对应的占用内存,确定所述目标应用内存泄露。
CN201510290518.8A 2015-05-29 2015-05-29 内存泄露监控方法和装置 Pending CN104866409A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510290518.8A CN104866409A (zh) 2015-05-29 2015-05-29 内存泄露监控方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510290518.8A CN104866409A (zh) 2015-05-29 2015-05-29 内存泄露监控方法和装置

Publications (1)

Publication Number Publication Date
CN104866409A true CN104866409A (zh) 2015-08-26

Family

ID=53912255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510290518.8A Pending CN104866409A (zh) 2015-05-29 2015-05-29 内存泄露监控方法和装置

Country Status (1)

Country Link
CN (1) CN104866409A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105740122A (zh) * 2016-01-26 2016-07-06 广东欧珀移动通信有限公司 一种手机内存泄漏的监测方法及监测系统
CN106055333A (zh) * 2016-05-31 2016-10-26 宇龙计算机通信科技(深圳)有限公司 一种显示应用程序标识方法及移动终端
CN106095689A (zh) * 2016-06-24 2016-11-09 北京奇虎科技有限公司 一种应用内存泄露的检测方法和装置
CN106326069A (zh) * 2016-08-19 2017-01-11 北京小米移动软件有限公司 功耗检测方法、装置、设备及系统
CN106560796A (zh) * 2015-12-31 2017-04-12 哈尔滨安天科技股份有限公司 内网终端应用程序内存堆栈异常预警方法及系统
CN107346285A (zh) * 2017-05-26 2017-11-14 郑州云海信息技术有限公司 一种内存泄露检测方法及装置
CN107943666A (zh) * 2017-12-15 2018-04-20 广州四三九九信息科技有限公司 客户端性能趋势监测方法、装置及计算机可读存储介质
CN109491897A (zh) * 2018-10-26 2019-03-19 成都安恒信息技术有限公司 一种基于趋势分析的系统资源泄漏测试方法
CN110618928A (zh) * 2019-06-25 2019-12-27 北京无限光场科技有限公司 一种内存泄露检测方法、装置、终端设备及介质
CN110704217A (zh) * 2019-08-27 2020-01-17 努比亚技术有限公司 一种内存泄露检测方法、终端及计算机可读存储介质
CN111858112A (zh) * 2019-04-26 2020-10-30 腾讯科技(深圳)有限公司 一种检测内存泄露的方法、客户端及服务器
CN113434364A (zh) * 2021-06-25 2021-09-24 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置
CN113515428A (zh) * 2021-07-13 2021-10-19 北京字节跳动网络技术有限公司 一种内存监控方法、终端、服务器、设备以及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538300A (zh) * 2003-09-23 2004-10-20 中兴通讯股份有限公司 一种实现嵌入式实时系统内存泄漏检测和定位的方法
US20100023531A1 (en) * 2007-01-12 2010-01-28 Truecontext Corporation Method and system for real time records from aggregated mobile data
CN103778056A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 无线应用稳定性测试方法及系统
CN104182320A (zh) * 2013-05-23 2014-12-03 联想(北京)有限公司 一种监控内存泄漏的方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1538300A (zh) * 2003-09-23 2004-10-20 中兴通讯股份有限公司 一种实现嵌入式实时系统内存泄漏检测和定位的方法
US20100023531A1 (en) * 2007-01-12 2010-01-28 Truecontext Corporation Method and system for real time records from aggregated mobile data
CN103778056A (zh) * 2012-10-23 2014-05-07 腾讯科技(深圳)有限公司 无线应用稳定性测试方法及系统
CN104182320A (zh) * 2013-05-23 2014-12-03 联想(北京)有限公司 一种监控内存泄漏的方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106560796A (zh) * 2015-12-31 2017-04-12 哈尔滨安天科技股份有限公司 内网终端应用程序内存堆栈异常预警方法及系统
CN105740122B (zh) * 2016-01-26 2019-07-26 Oppo广东移动通信有限公司 一种手机内存泄漏的监测方法及监测系统
CN105740122A (zh) * 2016-01-26 2016-07-06 广东欧珀移动通信有限公司 一种手机内存泄漏的监测方法及监测系统
CN106055333A (zh) * 2016-05-31 2016-10-26 宇龙计算机通信科技(深圳)有限公司 一种显示应用程序标识方法及移动终端
CN106095689A (zh) * 2016-06-24 2016-11-09 北京奇虎科技有限公司 一种应用内存泄露的检测方法和装置
CN106326069A (zh) * 2016-08-19 2017-01-11 北京小米移动软件有限公司 功耗检测方法、装置、设备及系统
CN107346285A (zh) * 2017-05-26 2017-11-14 郑州云海信息技术有限公司 一种内存泄露检测方法及装置
CN107943666A (zh) * 2017-12-15 2018-04-20 广州四三九九信息科技有限公司 客户端性能趋势监测方法、装置及计算机可读存储介质
CN109491897A (zh) * 2018-10-26 2019-03-19 成都安恒信息技术有限公司 一种基于趋势分析的系统资源泄漏测试方法
CN111858112A (zh) * 2019-04-26 2020-10-30 腾讯科技(深圳)有限公司 一种检测内存泄露的方法、客户端及服务器
CN110618928A (zh) * 2019-06-25 2019-12-27 北京无限光场科技有限公司 一种内存泄露检测方法、装置、终端设备及介质
CN110704217A (zh) * 2019-08-27 2020-01-17 努比亚技术有限公司 一种内存泄露检测方法、终端及计算机可读存储介质
CN113434364A (zh) * 2021-06-25 2021-09-24 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置
CN113434364B (zh) * 2021-06-25 2024-03-22 青岛海尔科技有限公司 屏端设备内存检测方法、装置、存储介质及电子装置
CN113515428A (zh) * 2021-07-13 2021-10-19 北京字节跳动网络技术有限公司 一种内存监控方法、终端、服务器、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN104866409A (zh) 内存泄露监控方法和装置
CN105302727A (zh) 测试方法、装置及系统
CN104239094A (zh) 后台应用程序的控制方法、装置及终端设备
CN105848190A (zh) Ota升级方法和装置
CN104360653A (zh) 故障排除方法和装置
CN105338409A (zh) 一种网络视频预加载方法及装置
CN106488335A (zh) 直播控制方法及装置
CN104933170A (zh) 信息展示方法及装置
CN103995834A (zh) 敏感信息检测方法及相关装置
CN105404382A (zh) 省电模式设置方法及装置
CN104156186A (zh) 健康数据显示方法及装置
CN105635207A (zh) 运行状态检测方法和装置
CN104156233A (zh) 轻应用离线更新方法、装置及终端
CN104301528A (zh) 显示信息的方法及装置
CN104836924A (zh) 号码标记方法及装置
CN105404576A (zh) 异常信息获取方法及装置
CN104915290A (zh) 应用测试方法及装置
CN105578401A (zh) 定位信息收集方法、装置及移动终端
CN105406882A (zh) 终端设备控制方法及装置
CN104010072A (zh) 电量提示方法及装置
CN104598537A (zh) 目标物信息推荐方法和装置
CN104932970A (zh) 内存泄露监控方法和装置
EP3015949A1 (en) Method and device for displaying information
CN105242837A (zh) 应用页面获取方法及终端
CN111614990A (zh) 加载时长的获取方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate 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: 20150826