CN110908866A - 软件监控方法及相关设备 - Google Patents

软件监控方法及相关设备 Download PDF

Info

Publication number
CN110908866A
CN110908866A CN201911124089.1A CN201911124089A CN110908866A CN 110908866 A CN110908866 A CN 110908866A CN 201911124089 A CN201911124089 A CN 201911124089A CN 110908866 A CN110908866 A CN 110908866A
Authority
CN
China
Prior art keywords
monitored process
preset
monitored
available virtual
virtual memory
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
CN201911124089.1A
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 Kingsoft Internet Security Software Co Ltd
Original Assignee
Beijing Kingsoft Internet Security Software Co Ltd
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 Beijing Kingsoft Internet Security Software Co Ltd filed Critical Beijing Kingsoft Internet Security Software Co Ltd
Priority to CN201911124089.1A priority Critical patent/CN110908866A/zh
Publication of CN110908866A publication Critical patent/CN110908866A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种软件监控方法及相关设备,按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;并获取预设周期内被监控进程的可用虚拟内存空间容量的下降速度;在可用虚拟内存空间容量或可用虚拟内存空间容量的下降速度达到预设条件时,获取并保存被监控进程的dump文件。通过本发明,可以在满足预设条件的情况下,自动、及时获取并保存被监控进程的dump文件,便于软件运营人员依据dump文件进行进程分析,及时解决进程异常问题,提高用户的软件使用体验。

Description

软件监控方法及相关设备
技术领域
本发明涉及软件技术领域,尤其涉及一种软件监控方法、一种软件监控装置、一种终端设备及一种计算机存储介质。
背景技术
现有技术中,用户在使用软件产品的过程中,会出现类似白屏卡顿,或者在长时间运行软件产品后,对于用户的点击操作无反应等异常情况,软件运营人员无法及时发现、解决软件产品出现的问题,造成用户对软件产品的使用体验低下。
发明内容
本发明实施例提供了一种软件监控方法及相关设备,可以及时生成dump文件,帮助软件运营人员解决软件异常问题。
一方面,本发明实施例提供了一种软件监控方法,包括:
按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
可选地,所述方法还包括:
根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
可选地,所述根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果,包括:
分析所述dump文件以获取所述被监控进程的占用空间,
根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
可选地,所述方法还包括:
在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
可选地,所述方法还包括:
在所述分析结果为进程占用空间异常的情况下,执行以下至少一项:
修改所述被监控进程对应的软件代码以减少冗余逻辑;
发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
可选地,按照第二预设时间间隔获取所述被监控进程的dump文件。
另一方面,本发明实施例提供了一种软件监控装置,包括:
监控模块,用于按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
Dump文件获取模块,用于在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
可选地,所述装置还包括:
分析处理模块,用于根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
可选地,所述分析处理模块包括:
进程空间获取子模块,用于分析所述dump文件以获取所述被监控进程的占用空间,
碎片大小获取子模块,用于根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
判断子模块,用于判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
可选地,所述装置还包括:
重启模块,用于在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
可选地,所述装置还包括代码修改模块、缓存清除模块、进程建立模块中的至少一个模块,其中:
所述代码修改模块,用于在所述分析结果为进程占用空间异常的情况下,修改所述被监控进程对应的软件代码以减少冗余逻辑;
所述缓存清除模块,用于在所述分析结果为进程占用空间异常的情况下,发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
所述进程建立模块,用于在所述分析结果为进程占用空间异常的情况下,创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
另一方面,本发明实施例提供了一种终端设备,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行所述的软件监控方法。
另一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行所述的软件监控方法。
本发明实施例中,按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;并获取预设周期内被监控进程的可用虚拟内存空间容量的下降速度;在可用虚拟内存空间容量或可用虚拟内存空间容量的下降速度达到预设条件时,获取并保存被监控进程的dump文件。通过本发明,可以在满足预设条件的情况下,自动、及时获取并保存被监控进程的dump文件,便于软件运营人员依据dump文件进行进程分析,及时解决进程异常问题,提高用户的软件使用体验。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种软件监控方法的场景示意图;
图2是本发明实施例提供的一种软件监控方法的流程示意图;
图3是本发明实施例提供的一种软件监控方法的流程示意图;
图4是本发明实施例提供的一种软件监控装置的结构示意图;
图5是本发明实施例提供的一种软件监控装置的结构示意图;
图6是本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应当理解,本申请的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
当软件程序启动并加载到内存中时,这里的“内存”指的是虚拟内存,也即预分配内存空间,它由两部分组成:硬盘上的页交换文件和实际的物理内存。从运行的程序自身来看,程序中包含的代码和数据可以存放在预分配内存空间中的任何一个地址上,而这个地址的值将由操作系统进行换算,并映射到实际的物理地址值上(包括硬盘上,或物理内存)中;其中,对于需要运行的程序的指令和数据将传入物理内存,而对于暂时不用的指令和数据,操作系统将根据算法,来决定是否将其暂时放在硬盘的页交换区。
而Dump文件是进程的内存镜像,可以把程序的执行状态通过调试器保存到dump文件中,dump文件的记录信息包括系统信息和程序运行堆栈信息。打开dump文件后,运行调试命令看到的信息和状态,就是dump文件保存时进程的状态。因此,通过dump文件能够方便地保存发生问题时进程的状态,方便事后分析。
请参见图1,图1是本发明实施例提供的一种软件监控方法的场景示意图;图1中,监控服务器12用于执行软件监控方法,监控在电脑11上运行的软件进程,实际的监控过程如下:
首先,监控服务器12与电脑11建立通信,可以是无线或者有线方式的通信连接,无线方式例如WiFi、4G、5G等移动通信方式,电脑11的操作系统以Windows系统为例;接着,监控服务器12根据Windows系统提供的API接口,按照第一预设时间间隔,例如10ms,每10ms根据进程标识获取一次被监控进程的可用虚拟内存空间容量。其中,在监控服务器12这一端,可以实时显示反映被监控进程的可用虚拟内存空间容量的变化情况的内存变化曲线,横坐标为时间,纵坐标为内存大小,在屏幕上点击暂停后,可以滚动查看内存变化曲线的历史数据。通过展示进程的内存变化曲线,方便运营人员更直观地查看被监控进程的内存变化情况。
另外,在监控服务器12这一端,还根据实时获取的可用虚拟内存空间容量,计算在预设周期内的容量的下降速度,例如预设周期设置成1s,每隔1s,就获取在1s内,被监控进程的可用虚拟内存空间容量的下降速度;接着判断可用虚拟内存空间容量、可用虚拟内存空间容量的下降速度哪一个满足预设条件,具体地,当获取到的下降速度到达预设速度时,例如预设速度设置成500M/s,或者实时获取的可用虚拟内存空间容量达到预设容量时,例如预设容量设置成0,或者前后两者同时满足时,监控服务器12就向电脑11发送抓取指令,按照第二预设时间间隔,例如1s,抓取dump时,先暂停被监控进程的所有线程,抓取dump后继续恢复线程,间隔1s后再暂停被监控进程,再抓取一次dump,连续抓取预设个数(例如4个)的dump文件,电脑11将抓取的dump文件发送给监控服务器12,监控服务器12接收并保存接收的dump文件。其中,预设速度为非正常的下降速度,速度数值较大,即在预设周期内,被监控进程的可用虚拟内存空间容量急速下降,表明此时被监控进程出现异常;同理,预设容量的数值较小,表明被监控进程的可用虚拟内存空间容量所剩无几,将影响被监控进程后续的正常运行。
上述对被监控流程的监控过程也可以是在电脑11上执行,在电脑11上创建一个监控进程,用于监控在电脑11上运行的被监控进程,不过在被监控进程发生奔溃异常时,容易导致监控进程中断,使得监控进程无法顺利获取到dump文件。具体地,监控进程启动后,先读取用户配置参数,包括第一预设时间间隔、第二预设时间间隔、预设容量、预设速度、预设个数,再开始进行进程监控。在电脑11上执行监控方法,适用于软件运营人员亲自安装软件后,对软件进程进行监控测试的场景;而监控服务器12适用于后台监控用户的软件进程的场景。
在监控服务器12或电脑11接收到dump文件后,可以通过网络向软件运营人员发送提醒消息,例如发送短信到软件运营人员的手机13上,提醒软件运营人员接收到dump文件,被监控进程出现异常,需要及时进行进程异常分析处理。软件运营人员可以根据多个dump文件分析被监控进程出现异常的原因,快速分析、定位软件性能问题,以及时解决进程异常问题。
另外,监控服务器12或电脑11也可以根据获取到的dump文件进行自动分析处理获取分析结果,判断导致被监控进程出现异常的原因是内存碎片过多还是进程本身占用空间过多而导致的异常,并将具体的分析结果发送给软件运营人员,以供软件运营人员参考。
请参见图2,是本发明实施例提供的一种软件监控方法的流程示意图;所述软件监控方法包括:
步骤S201,按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
具体地,被监控进程指运行在操作系统上的软件进程,操作系统包括但不限于Windows,macOS,Linux,iOS,Android等操作系统,本实施例中,被监控进程以Windows软件的进程为例进行说明,而被监控进程可以在台式电脑、笔记本电脑/平板电脑等智能终端设备上运行。另外,进程标识是指被监控进程的进程名称或进程ID,进程名称例如QQ音乐、金山毒霸、微信、地图等,进程ID(英语:processID)、PID)是大多数操作系统的内核用于唯一标识进程的一个数值。
第一预设时间间隔可以根据需要进行设置,例如10ms,设置完成后,即可以根据进程标识,从操作系统中获取到正在运行的被监控进程的可用虚拟内存空间容量。由上述可知,每一次启动软件进程时,操作系统将为每一个软件进程分配一个虚拟内存空间,即预分配内存空间,例如32位的软件进程默认最大分配2G的虚拟内存空间,可用虚拟内存空间容量即指剩余的可用预分配内存空间。根据需要设置预设周期的具体数值后,例如预设周期设置为1s,每次间隔1s就计算一次可用虚拟内存空间容量的下降速度;其中,容量和下降速度的监控起点时间是相同的,例如从被监控进程启动时,即开始按照第一预设时间间隔和预设周期获取被监控进程的可用虚拟内存空间容量,以及可用虚拟内存空间容量的下降速度。
步骤S202,在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
具体地,在可用虚拟内存空间容量和下降速度中至少一个达到了预设条件时,获取被监控进程的dump文件,即在可用虚拟内存空间容量或下降速度达到预设条件时,或者是可用虚拟内存空间容量和下降速度都达到预设条件时,控制被监控进程暂停后,获取被监控进程的dump文件,并将获取到的dump文件进行保存。其中,可以按照第二预设时间间隔获取预设个数个的dump文件,例如第二预设时间间隔为1s,预设个数为4个,抓取dump时,先暂停被监控进程的所有线程,抓取dump后继续恢复线程,间隔1s后再暂停被监控进程的所有线程,再抓取一次dump,这样连续抓取4个dump文件;按照第二预设时间间隔抓取多个dump文件,以保留抓取时被监控流程的相关逻辑操作,根据多个dump文件可以分析每个线程的运行逻辑。
本发明实施例可以在满足预设条件的情况下,自动、及时获取并保存被监控进程的dump文件,便于软件运营人员依据dump文件进行进程分析,及时解决进程异常问题,以提高用户的软件使用体验。
进一步地,所述步骤S202中,需要判断可用虚拟内存空间容量、可用虚拟内存空间容量的下降速度哪一个满足预设条件,具体包括判断:可用虚拟内存空间容量是否达到预设容量,或可用虚拟内存空间容量的下降速度是否达到预设速度,或者可用虚拟内存空间容量是否达到预设容量,且可用虚拟内存空间容量的下降速度是否达到预设速度;其中,预设速度为非正常的下降速度,速度数值较大,例如预设速度设置成500M/s,表明在预设周期内,被监控进程的可用虚拟内存空间容量急速下降,此时被监控进程出现了异常;同理,预设容量的数值较小,例如预设容量设置成0或者比0大但是小于10M之间的任意数字,表明被监控进程的可用虚拟内存空间容量所剩无几,将影响被监控进程后续的正常运行。
进一步地,参考图2,所述方法还包括:
步骤S203,根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
具体地,由于dump文件反映的是文件保存时被监控进程的状态。因此,通过dump文件能够分析被监控进程出现异常的原因。
更进一步地,参考图3,图3是本发明实施例提供的一种软件监控方法的流程示意图,所述步骤203具体包括:
步骤S301,分析所述dump文件以获取所述被监控进程的占用空间,
具体地,由于dump文件记录了被监控进程的堆栈信息,因此,可以根据dump文件获取到被监控进程出现异常时所占用的内存空间大小。
步骤S302,根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
具体地,根据被监控进程的预分配内存空间和被监控进程的占用空间计算内存碎片的大小,预分配内存空间和被监控进程的占用空间之间的差值即为内存碎片的大小。
步骤S303,判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
具体地,根据需要设置预设数值的具体大小,例如10M或50M,当内存碎片的大小大于或等于预设数值时,是内存碎片过多导致被监控进程的可用内存不足,分析结果为内存碎片异常;否则,内存碎片的大小小于预设数值,是被监控进程自身导致的可用内存不足,分析结果为进程占用空间异常。
更进一步地,所述方法还包括:
步骤A1,在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
具体地,当内存碎片过多时,可以通过重启被监控进程以整理内存碎片,使得被监控进程重新开始运行,当电脑接收到重启指令时,可以控制
步骤A2,在所述分析结果为进程占用空间异常的情况下,执行以下至少一项:
修改所述被监控进程对应的软件代码以减少冗余逻辑;
发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
具体地,当被监控进程出现占用空间异常导致可用虚拟内存不足时,表明被监控进程的代码运行占用过多的内存,可以将被监控进程中预设文件操作的缓存文件清理掉,以释放内存资源,其中,预设文件操作指将文件操作的代码和数据放入内存执行后即可移除的文件操作,例如在某一软件的首页显示图片或视频,在进入首页后,可以将图片或视频的缓存文件删除,再或者是软件的分享操作所对应的缓存文件,即用户操作的分享行为所产生的缓存数据,对预设文件操作不做特别限定。还可以修改软件代码逻辑,以减少冗余逻辑,减少被监控进程需要运行的代码数量,降低被监控进程在运行时需要存入内存的数据量,避免占用过多的内存空间;还可以是创建被监控进程的辅助进程,辅助进程用于运行被监控进程的预设线程,其中,预设线程是指被监控进程原先需要完成的某一或某一些功能,例如,可以将被监控进程中占用内存空间最多的线程作为预设线程,将其交由辅助进程去运行,以缓解被监控进程的内存压力。
由上述可知,经过代码逻辑修改以及创建辅助进程之后,可以获得修改后的软件安装包,可以将修改后的软件安装包在各大应用市场上线,以更新软件安装包,提升用户的使用体验。
进一步地,对于第一预设时间间隔,可以利用以下的步骤进行选择,所述方法还包括:
步骤B1,利用随机数生成器生成第一随机数序列和第二随机数序列,所述第一随机数序列和第二随机数序列的个数相同;
具体地,可以设置随机数生成器生成的随机数序列的数目、随机数的最大值、随机数的最小值,例如,设置生成30-100之间的50个随机数,可以得到数字个数相同的第一随机数序列和第二随机数序列。
步骤B2,将所述第一随机数序列中的数字依次作为所述第一预设时间间隔,并将所述第二随机数序列中的数字依次作为以所述第一预设时间间隔获取所述被监控进程的可用虚拟内存空间容量的预设次数;
步骤B3,根据所述第一预设时间间隔、所述预设次数、所述进程标识获取被监控进程的可用虚拟内存空间容量。
具体地,依次将第一随机数序列中的数字作为第一预设时间间隔,单位为ms,例如,第一随机数序列的第一个数字为35,则第一预设时间间隔为35ms,每隔35ms就获取一次被监控进程的可用虚拟内存空间容量;同时依次将第二随机数序列中的数字作为以上述第一预设时间间隔获取被监控进程的可用虚拟内存空间容量的次数,例如第二随机数序列的第一个数字为30,则以35ms作为第一预设时间间隔获取30次被监控进程的可用虚拟内存空间容量。
所述步骤S201中,当第一预设时间间隔设置得很小时,需要执行多次数据获取操作,这样很容易增加处理器的运行压力,而利用第一随机数序列和第二随机数序列控制获取被监控进程的可用虚拟内存空间容量的时间间隔和获取次数,不仅可以继续获取被监控进程的可用虚拟内存空间容量,而且可以减轻处理器的运行压力。
基于上述软件监控方法实施例的描述,本发明实施例还公开了一种软件监控装置,参考图4,图4是本发明实施例提供的一种软件监控装置的结构示意图,所述软件监控装置包括监控模块401、Dump文件获取模块402;其中:
监控模块401,用于按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
Dump文件获取模块402,用于在所述可用虚拟内存空间容量或所述下降速度达到预设条件的情况下,获取并保存所述被监控进程的dump文件。
其中,监控模块401、Dump文件获取模块402的具体功能实现方式可以参见上述图2对应实施例中的步骤S201-步骤S202,这里不再进行赘述。
进一步地,参考图4,所述装置还包括分析处理模块403,其中:
分析处理模块403,用于根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
更进一步地,参考图5,图5是本发明实施例提供的一种软件监控装置的结构示意图,所述分析处理模块403包括进程空间获取子模块501、碎片大小获取子模块502、判断子模块503,其中:
进程空间获取子模块501,用于分析所述dump文件以获取所述被监控进程的占用空间,
碎片大小获取子模块502,用于根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
判断子模块503,用于判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
其中,进程空间获取子模块501、碎片大小获取子模块502、判断子模块503的具体功能实现方式可以参见上述图3对应实施例中的步骤S301-步骤S303,这里不再进行赘述。
进一步地,所述装置还包括重启模块,其中:
重启模块,用于在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
进一步地,所述装置还包括代码修改模块、缓存清除模块、进程建立模块中的至少一个模块,其中:
所述代码修改模块,用于在所述分析结果为进程占用空间异常的情况下,修改所述被监控进程对应的软件代码以减少冗余逻辑;
所述缓存清除模块,用于在所述分析结果为进程占用空间异常的情况下,发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
所述进程建立模块,用于在所述分析结果为进程占用空间异常的情况下,创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
其中,重启模块、代码修改模块、缓存清除模块、进程建立模块的具体功能实现方式可以参见上述实施例中步骤A1-步骤A2,这里不再进行赘述。
进一步地,所述装置还包括随机数生成模块、数字处理模块,其中:
随机数生成模块,用于利用随机数生成器生成第一随机数序列和第二随机数序列,所述第一随机数序列和第二随机数序列的个数相同;
数字处理模块,用于将所述第一随机数序列中的数字依次作为所述第一预设时间间隔,并将所述第二随机数序列中的数字依次作为以所述第一预设时间间隔获取所述被监控进程的可用虚拟内存空间容量的次数;
所述监控模块401,还用于根据所述第一预设时间间隔、所述预设次数、所述进程标识获取被监控进程的可用虚拟内存空间容量。
其中,随机数生成模块、数字处理模块、所述监控模块401的具体功能实现方式可以参见上述实施例中的步骤B1-步骤B3,这里不再进行赘述。
值得指出的是,图4和图5所示的软件监控装置中的各个单元或模块可以分别或全部合并为一个或若干个另外的单元或模块来构成,或者其中的某个(些)单元或模块还可以再拆分为功能上更小的多个单元或模块来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元或模块是基于逻辑功能划分的,在实际应用中,一个单元(或模块)的功能也可以由多个单元(或模块)来实现,或者多个单元(或模块)的功能由一个单元(或模块)实现。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种终端设备。
请参见图6,是本发明实施例提供的一种终端设备的结构示意图。如图6所示,上述图4和图5中的软件监控装置可以应用于所述终端设备600,所述终端设备600可以包括:处理器601,网络接口604和存储器605,此外,所述终端设备600还可以包括:用户接口603,和至少一个通信总线602。其中,通信总线602用于实现这些组件之间的连接通信。其中,用户接口603可以包括显示屏(Display)、键盘(Keyboard),可选用户接口603还可以包括标准的有线接口、无线接口。网络接口604可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器605可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。存储器605可选的还可以是至少一个位于远离前述处理器601的存储装置。如图6所示,作为一种计算机存储介质的存储器605中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
在图6所示的终端设备600中,网络接口604可提供网络通讯功能;而用户接口603主要用于为用户提供输入的接口;而处理器601可以用于调用存储器605中存储的设备控制应用程序,以实现:
按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
在一个实施例中,所述处理器601还执行以下步骤:
根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
在一个实施例中,所述处理器601在执行根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果时,具体执行以下步骤:
分析所述dump文件以获取所述被监控进程的占用空间,
根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
在一个实施例中,所述处理器601还执行以下步骤:
在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
在一个实施例中,所述处理器601还执行以下步骤:
在所述分析结果为进程占用空间异常的情况下,执行以下至少一项:
修改所述被监控进程对应的软件代码以减少冗余逻辑;
发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
在一个实施例中,所述处理器601还执行以下步骤:
利用随机数生成器生成第一随机数序列和第二随机数序列,所述第一随机数序列和第二随机数序列的个数相同;
将所述第一随机数序列中的数字依次作为所述第一预设时间间隔,并将所述第二随机数序列中的数字依次作为以所述第一预设时间间隔获取所述被监控进程的可用虚拟内存空间容量的预设次数;
根据所述第一预设时间间隔、所述预设次数、所述进程标识获取被监控进程的可用虚拟内存空间容量。
应当理解,本发明实施例中所描述的终端设备600可执行前文图2到图3所对应实施例中对所述软件监控方法的描述,也可执行前文图4至图5所对应实施例中对所述软件监控装置的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本发明实施例还提供了一种计算机存储介质,且所述计算机存储介质中存储有前文提及的软件监控装置所执行的计算机程序,且所述计算机程序包括程序指令,当所述处理器执行所述程序指令时,能够执行前文图2到图3所对应实施例中对所述软件监控方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本发明所涉及的计算机存储介质实施例中未披露的技术细节,请参照本发明方法实施例的描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

Claims (10)

1.一种软件监控方法,其特征在于,包括:
按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
3.根据权利要求2所述的方法,其特征在于,所述根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果,包括:
分析所述dump文件以获取所述被监控进程的占用空间,
根据所述被监控进程的预分配内存空间和所述被监控进程的占用空间获取内存碎片的大小;
判断所述内存碎片的大小是否大于或等于预设数值,若判断结果为是,则所述分析结果为内存碎片异常;否则,所述分析结果为进程占用空间异常。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
在所述分析结果为内存碎片异常的情况下,发送重启指令以控制所述被监控进程重新启动。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
在所述分析结果为进程占用空间异常的情况下,执行以下至少一项:
修改所述被监控进程对应的软件代码以减少冗余逻辑;
发送清除缓存文件指令以清理所述被监控进程中预设文件操作的缓存文件;
创建所述被监控进程的辅助进程,所述辅助进程用于运行所述被监控进程的预设线程。
6.根据权利要求1至4任一项所述的方法,其特征在于,按照第二预设时间间隔获取所述被监控进程的dump文件。
7.一种软件监控装置,其特征在于,包括:
监控模块,用于按照第一预设时间间隔,根据进程标识获取被监控进程的可用虚拟内存空间容量;获取预设周期内所述被监控进程的可用虚拟内存空间容量的下降速度;
Dump文件获取模块,用于在所述可用虚拟内存空间容量或所述下降速度达到预设条件时,获取并保存所述被监控进程的dump文件。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
分析处理模块,用于根据所述dump文件进行异常分析处理以获取所述被监控进程的分析结果。
9.一种终端设备,其特征在于,包括:处理器和存储器;
所述处理器和存储器相连,其中,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码,以执行如权利要求1-6任一项所述的软件监控方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时,执行如权利要求1-6任一项所述的软件监控方法。
CN201911124089.1A 2019-11-15 2019-11-15 软件监控方法及相关设备 Pending CN110908866A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911124089.1A CN110908866A (zh) 2019-11-15 2019-11-15 软件监控方法及相关设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911124089.1A CN110908866A (zh) 2019-11-15 2019-11-15 软件监控方法及相关设备

Publications (1)

Publication Number Publication Date
CN110908866A true CN110908866A (zh) 2020-03-24

Family

ID=69817467

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911124089.1A Pending CN110908866A (zh) 2019-11-15 2019-11-15 软件监控方法及相关设备

Country Status (1)

Country Link
CN (1) CN110908866A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220537A (zh) * 2021-06-02 2021-08-06 上海节卡机器人科技有限公司 一种软件监控方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298569A (zh) * 2014-09-30 2015-01-21 北京金山安全软件有限公司 应用程序运行异常的检测方法、装置和移动终端
CN105740064A (zh) * 2014-12-12 2016-07-06 龙芯中科技术有限公司 Linux系统中防止服务端重启的方法及装置
CN107220181A (zh) * 2017-06-16 2017-09-29 瑞斯康达科技发展股份有限公司 一种异常进程定位方法、装置及系统
CN109558297A (zh) * 2018-11-27 2019-04-02 苏州思必驰信息科技有限公司 内存管理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104298569A (zh) * 2014-09-30 2015-01-21 北京金山安全软件有限公司 应用程序运行异常的检测方法、装置和移动终端
CN105740064A (zh) * 2014-12-12 2016-07-06 龙芯中科技术有限公司 Linux系统中防止服务端重启的方法及装置
CN107220181A (zh) * 2017-06-16 2017-09-29 瑞斯康达科技发展股份有限公司 一种异常进程定位方法、装置及系统
CN109558297A (zh) * 2018-11-27 2019-04-02 苏州思必驰信息科技有限公司 内存管理方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113220537A (zh) * 2021-06-02 2021-08-06 上海节卡机器人科技有限公司 一种软件监控方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN106681811B (zh) 基于线程池的多线程调度方法及装置
US9336054B2 (en) Method and apparatus for configuring resource
US10871985B2 (en) Displaying media files between changes in states of an application client
CN107832100B (zh) 一种apk插件的加载方法及其终端
US20220221998A1 (en) Memory management method, electronic device and non-transitory computer-readable medium
CN107045475B (zh) 测试方法和装置
CN109684000B (zh) App数据显示方法、装置、设备及计算机可读存储介质
CN110427258B (zh) 基于云平台的资源调度控制方法及装置
CN112650575A (zh) 资源调度方法、装置和云端服务系统
CN112445686A (zh) 内存泄漏检测方法、装置以及计算机可读存储介质
CN105512000B (zh) 一种操作系统异常信息收集方法、装置及计算机
CN110389872B (zh) 一种数据采集方法、装置以及相关设备
CN110990243A (zh) 卡顿分析方法、装置、存储介质和计算设备
CN110908866A (zh) 软件监控方法及相关设备
US6163793A (en) Method and apparatus for using a driver program executing on a host processor to control the execution of code on an auxiliary processor
CN116737472B (zh) 一种测试存储器时序训练过程的方法及装置
CN109918276B (zh) 基于app应用程序的曝光埋点处理方法及相关设备
CN109491771B (zh) 基于系统性能优化的任务处理方法及相关设备
EP4354293A1 (en) Detection method and apparatus, and electronic device
US20090083747A1 (en) Method for managing application programs by utilizing redundancy and load balance
CN114328090A (zh) 一种程序监控方法、装置、电子设备及存储介质
CN108228307B (zh) 应用的显示方法、装置、存储介质及电子设备
CN108040279B (zh) 视频加速方法及装置
CN112732568B (zh) 一种系统日志获取方法、装置、存储介质及终端
CN117806778B (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