CN105740122B - 一种手机内存泄漏的监测方法及监测系统 - Google Patents
一种手机内存泄漏的监测方法及监测系统 Download PDFInfo
- Publication number
- CN105740122B CN105740122B CN201610056828.8A CN201610056828A CN105740122B CN 105740122 B CN105740122 B CN 105740122B CN 201610056828 A CN201610056828 A CN 201610056828A CN 105740122 B CN105740122 B CN 105740122B
- Authority
- CN
- China
- Prior art keywords
- mobile phone
- memory
- occupancy
- monitoring
- destination application
- 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.)
- Active
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/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
-
- 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/3409—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 for performance assessment
- G06F11/3433—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 for performance assessment for load management
-
- 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/3466—Performance evaluation by tracing or monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
本发明属于电数字数据处理技术领域,尤其涉及一种手机内存泄漏的监测方法及监测系统。本发明通过自动操作手机内的各目标应用程序,并实时记录各步操作的路径及时间点,同时,监控操作过程中手机的内存使用数据,并根据手机内存使用数据判断手机在操作各目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点,当判定出现内存泄漏时,就可根据出现内存泄漏的时间点确定出导致内存泄漏的操作的路径,方便手机软件开发人员分析解决问题。与现有技术比较,本发明最大的优点在于可以进行探索性内存泄漏测试,防范于未然,同时也可以帮助相关人员了解到手机内的各应用程序在运行时大概会占用多少内存。
Description
技术领域
本发明属于电数字数据处理技术领域,尤其涉及一种手机内存泄漏的监测方法及监测系统。
背景技术
在智能手机行业,随着技术的不断发展,手机在硬件和软件方面相较前几年都有了质的飞跃。手机运行内存已经由512M扩展到了4G。同时配合越来越精细的软件,极大地提升了用户体验。但这也引发了一个问题,软件变得复杂后,对内存的使用可能会出现一些超出正常预期的情况,也就是内存泄漏了。
目前针对内存泄漏问题,只能是先找出可能出现的路径,然后通过手动或者自动化工具反复执行之。这种方法有一定的滞后性,即一般只能验证已出现的内存泄漏的步骤在后续是否会继续出现,而不利于自动找出新的内存泄漏情况。
发明内容
本发明提供了一种手机内存泄漏的监测方法及监测系统,旨在解决现有技术在检测手机内存泄漏时存在滞后的缺陷。
本发明第一方面提供了一种手机内存泄漏的监测方法,包括如下步骤:
控制手机自动操作所述手机中的目标应用程序,并记录每一步操作的路径及时间点;
在手机操作目标应用程序的过程中,监控所述手机的内存使用数据,并根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点;
当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径。
结合第一方面,在第一方面的第一种可能的实现方式中,控制手机自动操作所述手机中的目标应用程序的步骤包括:
获取各目标应用程序所支持的所有操作方式信息;
分别以各目标应用程序所支持的各操作方式操作各目标应用程序。
结合第一方面的第一种可能,在第一方面的第二种可能的实现方式中,每当所述手机以一种操作方式操作一次称为一次操作,则整个监测过程中,各次操作的执行顺序是随机的。
结合第一方面的第一种可能,在第一方面的第三种可能的实现方式中,所述操作方式包括点击、滑动、输入、按压。
结合第一方面的第一种可能,在第一方面的第四种可能的实现方式中,每一步操作的路径均包含如下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。
结合第一方面,在第一方面的第五种可能的实现方式中,控制手机自动操作所述手机中的目标应用程序之前,还包括如下步骤:
设定监测参数,所述监测参数包括预选的目标应用程序及手机内存使用数据的监控频率;
控制手机自动操作所述手机中的目标应用程序及监控所述手机的内存使用数据时均依照所述监测参数执行。
结合第一方面的第五种可能,在第一方面的第六种可能的实现方式中,所述内存使用数据包括:各目标应用程序的内存占用量或占用率数据;
监控所述手机的内存使用数据的步骤包括:
按照所述监控频率定时检测各目标应用程序的内存占用量或占用率;
根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断所述手机在操作目标应用程序的过程中是否出现内存泄漏;
根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法包括:
当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
结合第一方面的第六种可能,在第一方面的第七种可能的实现方式中,所述内存使用数据还包括:所述手机的整体内存占用量或占用率;
监控所述手机的内存使用数据的步骤还包括:
按照所述监控频率定时检测所述手机的整体内存占用量或占用率;
根据检测到的所述手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到所述手机的整体内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括所述手机的整体内存占用量或占用率阈值,所述手机的整体内存占用量或占用率阈值也用于判断所述手机在操作目标应用程序的过程中是否出现内存泄漏;
根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法还包括:
当所述手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过所述手机的整体内存占用量或占用率阈值,则判定所述手机在该时间点出现内存泄漏。
结合第一方面,在第一方面的第八种可能的实现方式中,根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径的方法包括:
将出现内存泄漏的时间点之前的各步操作中距离所述出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
结合第一方面,在第一方面的第九种可能的实现方式中,当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,还包括如下步骤:
输出监测结果,所述监测结果包括导致内存泄漏的操作的路径信息。
本发明第二方面提供了一种手机内存泄漏的监测系统,其特征在于,包括:
操作模块,用于控制手机自动操作所述手机中的目标应用程序,并记录每一步操作的路径及时间点;
监测模块,用于在手机操作目标应用程序的过程中,监控所述手机的内存使用数据,并根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点;
分析模块,用于当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径。
结合第二方面,在第二方面的第一种可能的实现方式中,所述操作模块包括:
操作方式获取模块,用于获取各目标应用程序所支持的所有操作方式信息;
操作执行模块,用于分别以各目标应用程序所支持的各操作方式操作各目标应用程序。
结合第二方面的第一种可能,在第二方面的第二种可能的实现方式中,每当所述手机以一种操作方式操作一次称为一次操作,则整个监测过程中,各次操作的执行顺序是随机的。
结合第二方面的第一种可能,在第二方面的第三种可能的实现方式中,所述操作方式包括点击、滑动、输入、按压。
结合第二方面的第一种可能,在第二方面的第四种可能的实现方式中,每一步操作的路径均包含如下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。
结合第二方面,在第二方面的第五种可能的实现方式中,所述监测系统还包括:
参数设定模块,用于设定监测参数;所述监测参数包括预选的目标应用程序及手机内存使用数据的监控频率;
所述操作模块及监测模块均依照所述监测参数运行。
结合第二方面的第五种可能,在第二方面的第六种可能的实现方式中,所述内存使用数据包括:各目标应用程序的内存占用量或占用率数据;
所述监控模块包括:
内存使用检测模块,用于按照所述监控频率定时检测各目标应用程序的内存占用量或占用率;
曲线拟合模块,用于根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断所述手机在操作应用程序的过程中是否出现内存泄漏;
所述监控模块还包括:
内存泄漏判断模块,用于在当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
结合第二方面的第六种可能,在第二方面的第七种可能的实现方式中,所述内存使用数据还包括:所述手机的整体内存占用量或占用率;
所述内存使用检测模块还用于按照所述监控频率定时检测所述手机的整体内存占用量或占用率;
所述曲线拟合模块还用于根据检测到的所述手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到所述手机的整体内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括所述手机的整体内存占用量或占用率阈值,所述手机的整体内存占用量或占用率阈值也用于判断所述手机在操作应用程序的过程中是否出现内存泄漏;
所述内存泄漏判断模块还用于在所述手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过所述手机的整体内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
结合第二方面,在第二方面的第八种可能的实现方式中,所述分析模块具体用于将出现内存泄漏的时间点之前的各步操作中距离所述出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
结合第二方面,在第二方面的第九种可能的实现方式中,所述监测系统还包括:
监测结果输出模块,用于当所述监控模块判定所述手机在操作目标应用程序的过程中出现内存泄漏时,输出监测结果;所述监测结果包括导致内存泄漏的操作的路径信息。
本发明第三方面提供了一种手机内存泄漏的监测设备,所述监测设备上安装有上述任意一种手机内存泄漏的监测系统。
从上述本发明实施例可知,本发明通过自动操作手机内的各目标应用程序,并实时记录各步操作的路径及时间点,同时,监控操作过程中手机的内存使用数据,并根据手机内存使用数据判断手机在操作各目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点,当判定出现内存泄漏时,就可根据出现内存泄漏的时间点确定出导致内存泄漏的操作的路径,方便手机软件开发人员分析解决问题。与现有技术比较,本发明最大的优点在于可以进行探索性内存泄漏测试,防范于未然,同时也可以帮助相关人员了解到手机内的各应用程序在运行时大概会占用多少内存。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明手机内存泄漏的监测系统组成示意图;
图2为监测系统中操作模块的组成示意图;
图3为监测系统中监测模块的组成示意图;
图4为本发明手机内存泄漏的监测系统的进一步组成示意图;
图5为本发明手机内存泄漏的监测方法流程示意图;
图6为监测方法中步骤S1的方法流程示意图;
图7为监测方法中步骤S2的方法流程示意图;
图8为监测方法中步骤S2的进一步方法流程示意图;
图9为监测方法的进一步流程示意图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一方面提供了一种手机内存泄漏的监测系统。内存泄漏一般是指应用程序在使用完为其分配的内存之后没有及时释放该内存,而一直占据该内存的现象。导致内存泄漏的某一程序运行的时间越长,其占据的内存也会越大,最终影响到整个系统的内存运行空间,严重时可导致系统崩溃。该系统是一种软件程序,可安装于待监测的手机内或者安装于其他的终端中,例如笔记本电脑、平板电脑、台式电脑或其他专用测试终端。
图1示出了本发明手机内存泄漏的监测系统组成示意图。根据图1,该手机内存泄漏的监测系统主要包括操作模块1、监测模块2及分析模块3。
操作模块1用于控制手机自动操作手机中的目标应用程序,并记录每一步操作的路径及时间点。控制手机时,如果该监测系统是安装于除待测手机以外的其他终端中,则先将终端与待测手机连接,比如将终端与待测手机的通讯接口连接,手机的通讯接口典型的有Micro USB接口等。
众所周知,手机系统内包含若干应用程序,平时使用手机的过程就是操作手机中的各种应用程序的过程,例如使用QQ、微信、地图等。每一应用程序都有其基本的操作方式,这里所说的操作方式是指手指的操作方式,如点击、滑动、输入、按压等。操作手机中的应用程序时需按照应用程序所支持的操作方式进行操作。为此,如图2所示,操作模块1还包括操作方式获取模块101和操作执行模块102。操作方式获取模块101用于获取各目标应用程序所支持的所有操作方式信息,操作执行模块102用于分别以各目标应用程序所支持的各操作方式操作各目标应用程序。例如,操作方式获取模块101检测到目标应用程序A支持点击、滑动、按压的操作方式,然后操作执行模块102则分别以点击、滑动、按压的操作方式操作应用程序A。当然。并不是一个应用程序支持了某一操作方式,该应用程序的任何界面位置都支持该操作方式,例如应用程序A支持点击的操作方式,但是在该应用程序的某些界面的某些位置却不支持点击,即在这些界面或位置进行点击该应用程序将无法接收到点击信号或不会对点击做出反应。因此,操作模块1在操作手机内的一个目标应用程序时,在获取了该应用程序所支持的各种操作方式之后,如果要对该应用程序进行某一操作方式的操作,应该在该应用程序的支持该操作方式的界面或位置上进行该操作方式的操作,而不是在其他不支持该操作方式的界面或位置上进行该操作方式的操作。
在手机操作各应用程序的过程中,以一种操作方式操作一次称为一次操作,例如,每点击一次称为一次操作,每滑动一次又称为一次操作,而与点击或滑动对应的是哪个应用程序无关,即每当以一种操作方式执行一次,就表示执行了一次操作。由于手机用户使用手机过程中的随意性,为了尽可能模拟用户的随性的使用习惯,或者尽可能地测试各种使用情况,在整个监测过程中,各次操作的执行顺序是随机的,没有预先规定。有可能当前操作应用程序A,在应用程序A的所有支持的操作方式还未执行完时,就转而操作应用程序B,应用程序B的所有支持的操作方式还未执行完或执行完时,转而操作应用程序A或其他应用程序。而且各次操作不仅限于只执行一次。同一操作可以多次重复执行,然后进行下一操作方式的操作。
在手机操作各应用程序的过程中,操作模块1需要记录每一步操作的路径及时间点。其中,操作的路径包括以下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。一步操作的路径信息是用于表示从第一步操作到该步操作的过程的,用于帮助相关人员复现该步操作。例如,假设第一步操作的操作方式为点击,操作的应用程序为应用程序A;第二步操作的操作方式为滑动,操作的应用程序为应用程序A;第三步操作为点击,操作的应用程序为应用程序B;第四步操作为按压,操作的操作程序为应用程序A;第五步操作为滑动,操作的应用程序为应用程序C。则第三步操作的路径包括如下信息:
第一步操作的操作方式及操作的应用程序;
第二步操作的操作方式及操作的应用程序;
第三步操作的操作方式及操作的应用程序。
各步操作的路径信息可表示在如下表格中,通过解析如下表格即可得到各步操作的路径信息。如上述五步操作的路径信息可表示在如下表格中:
操作的顺序 | 操作的应用程序 | 操作方式 |
第一步操作 | 应用程序A | 点击 |
第二步操作 | 应用程序A | 滑动 |
第三步操作 | 应用程序B | 点击 |
第四步操作 | 应用程序A | 按压 |
第五步操作 | 应用程序C | 滑动 |
通过解析上述表格可得出,第三步操作的路径信息为:在应用程序A上点击——>在应用程序A上滑动——>在应用程序B上点击。即先在应用程序A上进行点击操作,再在应用程序A上进行滑动操作,再在应用程序B上进行点击操作。当然这个路径信息是一个大概的路径信息,其中还可包括更具体的信息,如在应用程序A上进行点击操作时,点击的是应用程序A的哪一个界面的哪一个位置等。每一步操作的路径信息所包含的内容以使得相关人员能够完整地复现出从第一步操作到每一步操作的操作过程为原则。这样,当手机在某一时刻出现使用问题时,如出现内存泄漏,相关人员可分析出现使用问题的时刻的操作的路径,从而找出问题原因。
如图4所示,监测系统还可包括参数设定模块4。参数设定模块4用于设定监测参数,监测参数包括预选的目标应用程序及手机内存使用数据的监控频率,操作模块1及监测模块2均依照监测参数运行。有些应用程序的内存占用量或占用率很低,对手机的内存使用几乎没有影响或影响非常小,可以不监控,即不操作,这些应用程序可以不作为目标应用程序。手机内存使用数据有一个变化过程,实时监控增大数据计算量也无必要,因此手机内存使用数据的监控频率一般设置为3到5秒监控一次。
监测模块2用于在手机操作目标应用程序的过程中,监控手机的内存使用数据,并根据手机的内存使用数据判断手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点。监控手机的内存使用数据,并根据监控的内存使用数据判断手机是否出现内存泄漏以及内存泄漏的时间点的方式有很多,例如很多专业的内存监测软件就可以实时监测手机的内存使用数据,并判断手机是否出现内存泄漏。因此,监测模块2可采用各种现成的内存监测软件,当然也可以开发全新的内存监测软件。
内存使用数据包括各目标应用程序的内存占用量或占用率。基于此,如图3所示,监控模块包括内存使用检测模块201、曲线拟合模块202及内存泄漏判断模块203。
内存使用检测模块201用于按照监控频率定时检测各目标应用程序的内存占用量或占用率,曲线拟合模块202用于根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线。得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线后,就可得知各目标应用程序在任何时刻的内存占用量或占用率。监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断手机在操作应用程序的过程中是否出现内存泄漏。内存泄漏判断模块203用于在当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定手机在该时间点出现内存泄漏。
除各目标应用程序的内存占用量或占用率之外,内存使用数据还可进一步包括手机的整体内存占用量或占用率数据。基于此,内存使用检测模块201还用于按照监控频率定时检测手机的整体内存占用量或占用率,曲线拟合模块202还用于根据检测到的手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到手机的整体内存占用量或占用率与时间的变化关系曲线。监测参数还包括手机的整体内存占用量或占用率阈值,手机的整体内存占用量或占用率阈值也用于判断手机在操作应用程序的过程中是否出现内存泄漏。内存泄漏判断模块203还用于在手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过手机的整体内存占用量或占用率阈值时,也判定手机在该时间点出现内存泄漏。
上述各曲线可表示在同一坐标系中,也可表示在各自独立的坐标系中。坐标系的横轴表示时间,纵轴表示内存占用量或占用率。将各曲线表示在同一坐标系中有助于相关人员分析各应用程序在内存使用方面的相互关系和影响。
分析模块3用于当判定手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径。每一步操作的时间点和出现内存泄漏的时间点都是确定的,自然可以根据出现内存泄漏的时间点及各步操作的时间点推导出可能导致内存泄漏的操作,进而得出该步操作路径。
在确定导致内存泄漏的操作的路径时,分析模块3具体用于将出现内存泄漏的时间点之前的各步操作中距离出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
如图4所示,监测系统还包括监测结果输出模块5,用于当监控模块判定手机在操作目标应用程序的过程中出现内存泄漏时,输出监测结果。监测结果包括导致内存泄漏的操作的路径信息。监测结果中除了包含导致内存泄漏的操作的路径信息之外,还可包括各目标应用程序的内存占用量或占用率与时间的变化关系曲线、手机的整体内存占用量或占用率与时间的变化关系曲线、各步操作的路径信息、各步操作的时间点等信息。除了导致内存泄漏的操作的路径信息之外的其他信息可集中起来以手机log信息的形式存储起来,监测模块2可根据该手机log信息判断手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点,分析模块3也可以根据该手机log信息确定导致内存泄漏的操作的路径。该手机log信息和确定出的导致内存泄漏的操作的路径信息可一起作为监测结果输出。
本发明另一方面提供了一种手机内存泄漏的监测方法,如图5所示,该监测包括如下步骤:
步骤S1:控制手机自动操作手机中的目标应用程序,并记录每一步操作的路径及时间点;
步骤S2:在手机操作目标应用程序的过程中,监控手机的内存使用数据,并根据手机的内存使用数据判断手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点;
步骤S3:当判定手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径。
如图6所示,控制手机自动操作手机中的目标应用程序的步骤包括:
步骤S101:获取各目标应用程序所支持的所有操作方式信息;
步骤S102:分别以各目标应用程序所支持的各操作方式操作各目标应用程序。
每当手机以一种操作方式操作一次称为一次操作,则整个监测过程中,各次操作的执行顺序是随机的。操作方式包括点击、滑动、输入、按压。
每一步操作的路径均包含如下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。
如图9所示,控制手机自动操作手机中的目标应用程序之前,还包括如下步骤:
步骤S0:设定监测参数,监测参数包括预选的目标应用程序及手机内存使用数据的监控频率。控制手机自动操作手机中的目标应用程序及监控手机的内存使用数据时均依照监测参数执行。
内存使用数据包括各目标应用程序的内存占用量或占用率数据。如图7所示,监控手机的内存使用数据的步骤包括:
步骤S201:按照监控频率定时检测各目标应用程序的内存占用量或占用率;
步骤S202:根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线。
监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断手机在操作目标应用程序的过程中是否出现内存泄漏。
根据手机的内存使用数据判断手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法包括:
步骤S203:当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定手机在该时间点出现内存泄漏。
内存使用数据还包括手机的整体内存占用量或占用率。如图8所示,监控手机的内存使用数据的步骤还包括:
步骤S204:按照监控频率定时检测手机的整体内存占用量或占用率;
步骤S205:根据检测到的手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到手机的整体内存占用量或占用率与时间的变化关系曲线。
监测参数还包括手机的整体内存占用量或占用率阈值,手机的整体内存占用量或占用率阈值也用于判断手机在操作目标应用程序的过程中是否出现内存泄漏。
根据手机的内存使用数据判断手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法还包括:
步骤S206:当手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过手机的整体内存占用量或占用率阈值,则判定手机在该时间点出现内存泄漏。
根据出现内存泄漏的时间点确定导致内存泄漏的操作的路径的方法包括:
将出现内存泄漏的时间点之前的各步操作中距离出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
如图9所示,当判定手机在操作目标应用程序的过程中出现内存泄漏时,还包括如下步骤:
步骤S4:输出监测结果,监测结果包括导致内存泄漏的操作的路径信息。
可利用本发明提供的监测系统或监测方法在手机空闲时间自动对手机的内存使用情况进行监测,通过大量无序的操作可尽可能多地暴露出可能导致内存泄漏的操作路径,从而帮助开发人员优化手机系统及应用程序,提高手机使用流畅度,提高用户体验。上述监测方法的各步骤与上述监测系统的各模块具有对应关系,各步骤的具体工作过程可参照上述监测系统中对相应模块的描述,在此不再赘述。
基于上述监测系统,本发明第三方面提供了一种手机内存泄漏的监测设备,所述监测设备上安装有上述任意一种手机内存泄漏的监测系统。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本发明所提供的一种手机内存泄漏的监测方法及监测系统的描述,对于本领域的技术人员,依据本发明实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。
Claims (21)
1.一种手机内存泄漏的监测方法,其特征在于,包括如下步骤:
控制手机自动操作所述手机中的目标应用程序,并记录每一步操作的路径及时间点,所述每一步操作的路径信息所包含的内容以使得相关人员能够完整地复现出从第一步操作到每一步操作的操作过程为原则;
在手机操作目标应用程序的过程中,监控所述手机的内存使用数据,并根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点;
当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作,并将该操作的路径作为导致内存泄露的操作的路径。
2.如权利要求1所述的手机内存泄漏的监测方法,其特征在于,控制手机自动操作所述手机中的目标应用程序的步骤包括:
获取各目标应用程序所支持的所有操作方式信息;
分别以各目标应用程序所支持的各操作方式操作各目标应用程序。
3.如权利要求2所述的手机内存泄漏的监测方法,其特征在于,每当所述手机以一种操作方式操作一次称为一次操作,则整个监测过程中,各次操作的执行顺序是随机的。
4.如权利要求2所述的手机内存泄漏的监测方法,其特征在于,所述操作方式包括点击、滑动、输入、按压。
5.如权利要求2所述的手机内存泄漏的监测方法,其特征在于,每一步操作的路径均包含如下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。
6.如权利要求1所述的手机内存泄漏的监测方法,其特征在于,控制手机自动操作所述手机中的目标应用程序之前,还包括如下步骤:
设定监测参数,所述监测参数包括预选的目标应用程序及手机内存使用数据的监控频率;
控制手机自动操作所述手机中的目标应用程序及监控所述手机的内存使用数据时均依照所述监测参数执行。
7.如权利要求6所述的手机内存泄漏的监测方法,其特征在于,所述内存使用数据包括:各目标应用程序的内存占用量或占用率数据;
监控所述手机的内存使用数据的步骤包括:
按照所述监控频率定时检测各目标应用程序的内存占用量或占用率;
根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断所述手机在操作目标应用程序的过程中是否出现内存泄漏;
根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法包括:
当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
8.如权利要求7所述的手机内存泄漏的监测方法,其特征在于,所述内存使用数据还包括:所述手机的整体内存占用量或占用率;
监控所述手机的内存使用数据的步骤还包括:
按照所述监控频率定时检测所述手机的整体内存占用量或占用率;
根据检测到的所述手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到所述手机的整体内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括所述手机的整体内存占用量或占用率阈值,所述手机的整体内存占用量或占用率阈值也用于判断所述手机在操作目标应用程序的过程中是否出现内存泄漏;
根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点的方法还包括:
当所述手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过所述手机的整体内存占用量或占用率阈值,则判定所述手机在该时间点出现内存泄漏。
9.如权利要求1所述的手机内存泄漏的监测方法,其特征在于,根据出现内存泄漏的时间点确定导致内存泄漏的操作,并将该操作的路径作为导致内存泄露的操作的路径的方法包括:
将出现内存泄漏的时间点之前的各步操作中距离所述出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
10.如权利要求1所述的手机内存泄漏的监测方法,其特征在于,当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,还包括如下步骤:
输出监测结果,所述监测结果包括导致内存泄漏的操作的路径信息。
11.一种手机内存泄漏的监测系统,其特征在于,包括:
操作模块,用于控制手机自动操作所述手机中的目标应用程序,并记录每一步操作的路径及时间点,所述每一步操作的路径信息所包含的内容以使得相关人员能够完整地复现出从第一步操作到每一步操作的操作过程为原则;
监测模块,用于在手机操作目标应用程序的过程中,监控所述手机的内存使用数据,并根据所述手机的内存使用数据判断所述手机在操作目标应用程序的过程中是否出现内存泄漏以及出现内存泄漏的时间点;
分析模块,用于当判定所述手机在操作目标应用程序的过程中出现内存泄漏时,根据出现内存泄漏的时间点确定导致内存泄漏的操作,并将该操作的路径作为导致内存泄露的操作的路径。
12.如权利要求11所述的手机内存泄漏的监测系统,其特征在于,所述操作模块包括:
操作方式获取模块,用于获取各目标应用程序所支持的所有操作方式信息;
操作执行模块,用于分别以各目标应用程序所支持的各操作方式操作各目标应用程序。
13.如权利要求12所述的手机内存泄漏的监测系统,其特征在于,每当所述手机以一种操作方式操作一次称为一次操作,则整个监测过程中,各次操作的执行顺序是随机的。
14.如权利要求12所述的手机内存泄漏的监测系统,其特征在于,所述操作方式包括点击、滑动、输入、按压。
15.如权利要求12所述的手机内存泄漏的监测系统,其特征在于,每一步操作的路径均包含如下信息:
由第一步操作到该步操作的过程中每一步操作的顺序、对应的目标应用程序及操作方式。
16.如权利要求11所述的手机内存泄漏的监测系统,其特征在于,还包括:
参数设定模块,用于设定监测参数;所述监测参数包括预选的目标应用程序及手机内存使用数据的监控频率;
所述操作模块及监测模块均依照所述监测参数运行。
17.如权利要求16所述的手机内存泄漏的监测系统,其特征在于,所述内存使用数据包括:各目标应用程序的内存占用量或占用率数据;
所述监测模块包括:
内存使用检测模块,用于按照所述监控频率定时检测各目标应用程序的内存占用量或占用率;
曲线拟合模块,用于根据检测到的各目标应用程序在各检测时刻的内存占用量或占用率实时进行曲线拟合,得到各目标应用程序的内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括各目标应用程序的内存占用量或占用率阈值,各目标应用程序的内存占用量或占用率阈值均用于判断所述手机在操作应用程序的过程中是否出现内存泄漏;
所述监测模块还包括:
内存泄漏判断模块,用于在当任一目标应用程序的内存占用量或占用率与时间的变化关系曲线中的任一时间点的内存占用量或占用率超过相应目标应用程序的内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
18.如权利要求17所述的手机内存泄漏的监测系统,其特征在于,所述内存使用数据还包括:所述手机的整体内存占用量或占用率;
所述内存使用检测模块还用于按照所述监控频率定时检测所述手机的整体内存占用量或占用率;
所述曲线拟合模块还用于根据检测到的所述手机在各检测时刻的整体内存占用量或占用率实时进行曲线拟合,得到所述手机的整体内存占用量或占用率与时间的变化关系曲线;
所述监测参数还包括所述手机的整体内存占用量或占用率阈值,所述手机的整体内存占用量或占用率阈值也用于判断所述手机在操作应用程序的过程中是否出现内存泄漏;
所述内存泄漏判断模块还用于在所述手机的整体内存占用量或占用率与时间的变化关系曲线中的任一时间点的手机整体内存占用量或占用率超过所述手机的整体内存占用量或占用率阈值时,判定所述手机在该时间点出现内存泄漏。
19.如权利要求11所述的手机内存泄漏的监测系统,其特征在于,所述分析模块具体用于将出现内存泄漏的时间点之前的各步操作中距离所述出现内存泄漏的时间点最近的那一步操作作为导致内存泄漏的操作,并将该操作的路径作为导致内存泄漏的操作的路径。
20.如权利要求11所述的手机内存泄漏的监测系统,其特征在于,还包括:
监测结果输出模块,用于当所述监测模块判定所述手机在操作目标应用程序的过程中出现内存泄漏时,输出监测结果;所述监测结果包括导致内存泄漏的操作的路径信息。
21.一种手机内存泄漏的监测设备,其特征在于,所述监测设备上安装有如权利要求11至20任一项所述的手机内存泄漏的监测系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056828.8A CN105740122B (zh) | 2016-01-26 | 2016-01-26 | 一种手机内存泄漏的监测方法及监测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610056828.8A CN105740122B (zh) | 2016-01-26 | 2016-01-26 | 一种手机内存泄漏的监测方法及监测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740122A CN105740122A (zh) | 2016-07-06 |
CN105740122B true CN105740122B (zh) | 2019-07-26 |
Family
ID=56247880
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610056828.8A Active CN105740122B (zh) | 2016-01-26 | 2016-01-26 | 一种手机内存泄漏的监测方法及监测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105740122B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108377292B (zh) * | 2018-01-30 | 2020-11-10 | 努比亚技术有限公司 | 解决内存泄露的方法、终端、服务器及计算机存储介质 |
CN109857615B (zh) * | 2018-12-29 | 2022-07-19 | 奇安信科技集团股份有限公司 | 一种内存泄漏的检测方法及装置 |
CN109901966A (zh) * | 2019-01-14 | 2019-06-18 | 珠海金山网络游戏科技有限公司 | 一种手机性能占用监测方法及系统 |
CN110941549B (zh) * | 2019-11-19 | 2021-12-07 | 北京字节跳动网络技术有限公司 | 一种内存泄漏的检测方法、装置、介质和电子设备 |
CN111552623B (zh) * | 2020-04-30 | 2023-10-27 | 汉海信息技术(上海)有限公司 | 一种确定页面内存消耗的方法及装置 |
CN112416793B (zh) * | 2020-12-01 | 2024-06-25 | 新华三人工智能科技有限公司 | 一种内存泄漏检测方法及装置 |
CN116594862B (zh) * | 2023-04-04 | 2024-05-03 | 平凯星辰(北京)科技有限公司 | Dbms的测试方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182320A (zh) * | 2013-05-23 | 2014-12-03 | 联想(北京)有限公司 | 一种监控内存泄漏的方法及装置 |
CN104866409A (zh) * | 2015-05-29 | 2015-08-26 | 小米科技有限责任公司 | 内存泄露监控方法和装置 |
CN104991847A (zh) * | 2015-07-03 | 2015-10-21 | 厦门美图移动科技有限公司 | 一种内存泄露自动化检测方法、装置及移动终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100965426B1 (ko) * | 2008-04-24 | 2010-06-24 | 주식회사 파수닷컴 | 메모리 누수 검출 장치 및 방법 |
-
2016
- 2016-01-26 CN CN201610056828.8A patent/CN105740122B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182320A (zh) * | 2013-05-23 | 2014-12-03 | 联想(北京)有限公司 | 一种监控内存泄漏的方法及装置 |
CN104866409A (zh) * | 2015-05-29 | 2015-08-26 | 小米科技有限责任公司 | 内存泄露监控方法和装置 |
CN104991847A (zh) * | 2015-07-03 | 2015-10-21 | 厦门美图移动科技有限公司 | 一种内存泄露自动化检测方法、装置及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN105740122A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105740122B (zh) | 一种手机内存泄漏的监测方法及监测系统 | |
CN109586952A (zh) | 服务器扩容方法、装置 | |
CN104794049B (zh) | 应用程序测试方法和装置 | |
CN105653338B (zh) | 一种应用的更新方法及装置 | |
CN111078532A (zh) | 一种终端设备的测试方法、装置及系统 | |
CN109167812A (zh) | 评估服务质量、确定调整策略的方法、服务器及存储介质 | |
CN109688033A (zh) | 一种网络带宽评测方法、装置、系统以及存储介质 | |
CN109473121A (zh) | 语音合成质量测试方法及装置 | |
CN110247796A (zh) | 监控告警方法、装置及相关设备 | |
CN1987819A (zh) | 选择性测试方法及其测试设备 | |
CN110415044A (zh) | 作弊检测方法、装置、设备及存储介质 | |
CN109714201A (zh) | 网络系统可靠性评估方法、装置、计算机设备和存储介质 | |
CN109522181A (zh) | 一种分布式存储系统的性能测试方法、装置和设备 | |
CN115685109A (zh) | 一种对毫米波雷达测试的方法、装置、设备及存储介质 | |
CN109462527A (zh) | 网络拥塞分析方法、装置及存储介质 | |
CN111901155B (zh) | 一种物联网调试方法、装置、系统及存储介质 | |
CN101206616B (zh) | 一种图形界面程序的资源泄漏测试及问题定位方法 | |
CN110943887B (zh) | 探针调度方法、装置、设备和存储介质 | |
CN103577290A (zh) | 一种测试脚本的回放节奏控制方法及系统 | |
CN110134607A (zh) | 一种app自动化测试方法及装置 | |
CN115941538A (zh) | 一种针对多方安全计算的测试系统、测试方法及装置 | |
CN110334018A (zh) | 一种大数据导入方法以及相关设备 | |
CN109857615A (zh) | 一种内存泄漏的检测方法及装置 | |
CN115437961A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN109324824A (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 | ||
CB02 | Change of applicant information |
Address after: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong Applicant after: OPPO Guangdong Mobile Communications Co., Ltd. Address before: 523860 No. 18, Wu Sha Beach Road, Changan Town, Dongguan, Guangdong Applicant before: Guangdong OPPO Mobile Communications Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |