CN112463544B - 程序的运行监控方法、装置、设备及存储介质 - Google Patents
程序的运行监控方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112463544B CN112463544B CN202011496512.3A CN202011496512A CN112463544B CN 112463544 B CN112463544 B CN 112463544B CN 202011496512 A CN202011496512 A CN 202011496512A CN 112463544 B CN112463544 B CN 112463544B
- Authority
- CN
- China
- Prior art keywords
- memory
- program
- preset
- data
- target program
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 49
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013507 mapping Methods 0.000 claims abstract description 44
- 238000012806 monitoring device Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 14
- 125000004122 cyclic group Chemical group 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 7
- 238000007667 floating Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001351 cycling effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
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/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及内存监控领域,公开了一种程序的运行监控方法、装置、设备及存储介质。该方法包括:通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;判断所述映射虚拟地址集中是否存在所述虚拟地址;若存在,则发送所述目标程序的内存占用信息至预置管理端口处;若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据。
Description
技术领域
本发明涉及内存监控领域,尤其涉及一种程序的运行监控方法、装置、设备及存储介质。
背景技术
目前,对程序的监控与控制,主要是针对是介于启动与退出之间的判断,在程序启动的监控过程中,现有技术的监控程序都需要进行内存开辟以实现内存的监控,但是这会对内存资源进行占用,需要一种能减少内存资源占用的程序监控技术。
发明内容
本发明的主要目的在于解决监控程序在监控程序时对内存进行占用过多的技术问题。
本发明第一方面提供了一种程序的运行监控方法,包括步骤:
通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断所述映射虚拟地址集中是否存在所述虚拟地址;
若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据。
可选的,在本发明第一方面的第一种实现方式中,在所述通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址之前,还包括:
调用预置状态查询函数,读取预置共享内存区的状态设置值;
判断所述状态设置值是否为零;
若不为零,则发送目标程序的无法占用内存信息至预置管理端口;
若为零,则访问预置程序接口。
可选的,在本发明第一方面的第二种实现方式中,在所述发送所述目标程序的内存占用信息至预置管理端口处之后,还包括:
根据预置监控时长,定时扫描所述共享内存区中的内存数据;
判断所述内存数据中所述目标程序对应的内存占用数据是否被移除;
若被移除,则发送所述目标程序的关闭信息至所述管理端口处。
可选的,在本发明第一方面的第三种实现方式中,所述判断所述内存数据中所述目标程序对应的内存占用数据是否被移除包括:
调用预置进程查询函数,读取所述内存数据中内存占用数据对应的返回值;若所述返回值为空,则确定所述内存占用数据被移除;
若所述返回值不为空,则确定所述内存占用数据未被移除。
可选的,在本发明第一方面的第四种实现方式中,所述根据预置监控时长,定时扫描所述共享内存区中的内存数据包括:
读取并存储所述内存占用数据对应的目标标识值;
根据预置监控时长,定时读取所述共享内存区中所有的内存标识值,得到内存标识值集。
可选的,在本发明第一方面的第五种实现方式中,所述判断所述内存数据中所述目标程序对应的内存占用数据是否被移除包括:
判断所述目标标识值是否存在于所述内存标识值集中;
若存在,则所述目标程序对应的内存占用数据确认为未被移除;若不存在,则所述目标程序对应的内存占用数据确认为被移除。
可选的,在本发明第一方面的第六种实现方式中,所述根据预置重置时长,循环扫描所述共享内存区中的内存数据包括:
读取预置重置时长、预置循环阈值N、循环统计值M,其中,M、N为正整数,N不小于M;
根据所述重置时长,扫描所述共享内存区中的内存数据,并对所述循环统计值M的赋值增加1,得到新的循环统计值M;
判断所述循环统计值M是否等于所述循环阈值N;
若等于,则停止循环扫描所述共享内存区中的内存数据;
若不等于,则基于所述重置时长,进行重新计时。
本发明第二方面提供了一种程序的运行监控装置,包括:
获取模块,用于通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
查询模块,用于扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断模块,用于判断所述映射虚拟地址集中是否存在所述虚拟地址;
发送模块,用于若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
循环模块,用于若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据。
本发明第三方面提供了一种程序的运行监控设备,包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;所述至少一个处理器调用所述存储器中的所述指令,以使得所述程序的运行监控设备执行上述的程序的运行监控方法。
本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的程序的运行监控方法。
附图说明
图1为本发明实施例中程序的运行监控方法的第一个实施例示意图;
图2为本发明实施例中程序的运行监控方法的第二个实施例示意图;
图3为本发明实施例中程序的运行监控方法的第三个实施例示意图;
图4为本发明实施例中程序的运行监控装置的一个实施例示意图;
图5为本发明实施例中程序的运行监控装置的另一个实施例示意图;
图6为本发明实施例中程序的运行监控设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种程序的运行监控方法、装置、设备及存储介质。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中程序的运行监控方法的第一个实施例包括:
101、通过预置程序接口,访问待监控的目标程序,并获取目标程序的虚拟地址;
在本实施例中,接口API是Windows系统内部有关程序读取的现有设置,在访问目标程序时,通过进程间通信IPC进行访问,也可以根据注册表对目标程序进行查询访问,访问目标程序在整个Windows系统中的逻辑地址也即虚拟地址{0x0vffv2000-0x7FFFFFFF}。
102、扫描预置共享内存区中的内存数据,查询内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
在本实施例中,在扫描共享内存数据时,可以使用IPC-CREAT函数也可以使用IPC-EXCL函数进行扫描,还可以基于目标数据的名称通过pathname id调用ftok()将进程间通信打开,或者使用write()、send()、read()、msgsnd()等函数查询到共享内存位置,并读取内存数据。在内存数据的管理表格中查找内存的所有映射的地址,映射地址集合构成{0x005230-0x7FFFFFFF、0x00556320-0x7FFFFgfggF、0x0ggg5230-0x7FFFFFFF}映射虚拟地址集。
103、判断映射虚拟地址集中是否存在虚拟地址;
在本实施例中,虚拟地址为{0x0vffv2000-0x7FFFFFFF},使用正则法则判断在映射虚拟地址集{0x005230-0x7FFFFFFF、0x00556320-0x7FFFFgfggF、0x0ggg5230-0x7FFFFFFF}中是存在相匹配的数据。
在另一中实施例,可以设置虚拟地址的字符进行浮点值转换,映射虚拟地址集中每个地址也进行浮点值转换,最后判定虚拟地址的浮点值是否存在映射虚拟地址集相同的浮点值,如果不存相同则认为映射虚拟地址集中不存在目标程序的虚拟地址。
104、若存在,则发送目标程序的内存占用信息至预置管理端口处;
在本实施例中,如果得到相同的判断则将{id目标程序已经开启内存占用}发送到预先设置的管理端口处,管理端口可以是无线连接,也可以是有限连接,目的是为了连接显示屏幕将整个信息显示,提醒用户监控信息,在实现提醒过程中可以调用语音提醒功能,也可以调用手机震动模块提醒用户监控信息。
105、若不存在,则根据预置重置时长,循环扫描共享内存区中的内存数据。
在本实施例中,预置重置时长为15秒,设置出15秒的计时器,每隔15秒扫描共享内存区中的映射虚拟地址集,根据新的映射虚拟地址集,进行读取判断是否存在虚拟地址{0x0vffv2000-0x7FFFFFFF}。
本发明实施例中,读取共享内存中各个内存数据的映射地址,根据映射地址的不同数据进行判断是否存在目标程序的虚拟地址,地址不匹配则未占用内存,地址匹配则占用内存,使得监控程序能占用更少的内存资源完成程序监控任务。
请参阅图2,本发明实施例中程序的运行监控方法的第二个实施例包括:
201、调用预置状态查询函数,读取预置共享内存区的状态设置值;
在本实施例中,调用函数查询shmflg的状态设置值。
202、判断状态设置值是否为零;
在本实施例中,状态值存在两种,一种为SHM-RDONLY表明是可以读但内存不可以写入,另一中为0,表明共享内存可写可读。
203、若不为零,则发送目标程序的无法占用内存信息至预置管理端口;
在本实施例中,如果不为零,则认定为SHM-RDONLY,将{内存无法占用}发送至显示端口处。
204、若为零,则访问预置程序接口;
在本实施例中,状态值为0,则直接访问API接口,读取目标程序。
205、通过预置程序接口,访问待监控的目标程序,并获取目标程序的虚拟地址;
206、扫描预置共享内存区中的内存数据,查询内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
207、判断映射虚拟地址集中是否存在虚拟地址;
208、若存在,则发送目标程序的内存占用信息至预置管理端口处;
205-208实施例在第一个实施例中已经说明,可以参考前述说明,在此不做赘述。
209、根据预置监控时长,定时扫描共享内存区中的内存数据;
在本实施例中,在确定目标程序在内存区开辟内存后,则可以获得内存区的返回的Key值也即是返回值,每个返回值都是独一无二的,扫描内存数据就是为了查询内存返回的Key值。
210、调用预置进程查询函数,读取内存数据中内存占用数据对应的返回值;
在本实施例中,调用ftok()查询函数查询返回值。
211、若返回值为空,则确定内存占用数据被移除;
在本实施例中,若返回值为IPC-CREAT或是IPC-EXCL为“NULL”,则说明内存已经被移除,下一步是新开辟一个内存,开辟过程可以取消。
212、发送目标程序的关闭信息至管理端口处;
在本实施例中,没有移除将{内存占用已经被移除}发送至显示设备也即是管理设备的端口处。
213、若返回值不为空,则确定内存占用数据未被移除;
在本实施例中,若返回值为IPC-CREAT或是IPC-EXCL是存在的,则说明内存没有移除。
214、若不存在,则根据预置重置时长,循环扫描共享内存区中的内存数据。
本实施例在第一个实施例中已经说明,可以参考前述说明,在此不做赘述。
本发明实施例中,读取共享内存中各个内存数据的映射地址,根据映射地址的不同数据进行判断是否存在目标程序的虚拟地址,地址不匹配则未占用内存,地址匹配则占用内存,使得监控程序能占用更少的内存资源完成程序监控任务。
请参阅图3,本发明实施例中程序的运行监控方法的第三个实施例包括:
301、通过预置程序接口,访问待监控的目标程序,并获取目标程序的虚拟地址;
302、扫描预置共享内存区中的内存数据,查询内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
303、判断映射虚拟地址集中是否存在虚拟地址;
304、若存在,则发送目标程序的内存占用信息至预置管理端口处;
301-304实施例在第一个实施例中已经说明,可以参考前述说明,在此不做赘述。
305、读取并存储内存占用数据对应的目标标识值;
在本实施例中,在监控目标程序在开辟程序后在内存区占用的后,都会给予一个特定键值。
306、根据预置监控时长,定时读取共享内存区中所有的内存标识值,得到内存标识值集;
在本实施例中,读取共享内存区中的分发的所有键值,并将所有键值组合为一个整体的内存标识值集。
307、判断目标标识值是否存在于内存标识值集中;
在本实施例中,目标程序的键值是否为键值集合中的数据。
308、若存在,则目标程序对应的内存占用数据确认为未被移除;
在本实施例中,将目标程序标记为“1233”,“1233”即对应占用数据未被移除。
309、若不存在,则目标程序对应的内存占用数据确认为被移除;
在本实施例中,将目标程序标记为“153”,“153”即对应内存占用数据已经成功被移除。
310、若被移除,则发送目标程序的关闭信息至管理端口处;
本实施例在第二个实施例中已经说明,可以参考前述说明,在此不做赘述。
311、若不存在,则读取预置重置时长、预置循环阈值N、循环统计值M,其中,M、N为正整数,N不小于M;
在本实施例中,重置时长为50秒,循环阈值为60次,循环统计值的初始值为40。
312、根据重置时长,扫描共享内存区中的内存数据,并对循环统计值M的赋值增加1,得到新的循环统计值M;
在本实施例中,隔50秒扫描一次共享内存区里所有内存数据,并在40的基础上加1,循环统计值为41。再隔50秒扫描一次共享内存区里所有内存数据,并在41的基础上加1,循环统计值为42,循环至循环统计值等于循环阈值。
313、判断循环统计值M是否等于循环阈值N;
在本实施例中,循环统计值40不等于循环阈值60,则继续循环,若等于则停止扫描。
314、若等于,则停止循环扫描共享内存区中的内存数据;
在本实施例中,当循环统计值60等于循环阈值60则退出循环结束整个监控进程。
315、若不等于,则基于重置时长,进行重新计时。
在本实施例中,循环统计值56不等于循环阈值60则继续进行循环监控。
本发明实施例中,读取共享内存中各个内存数据的映射地址,根据映射地址的不同数据进行判断是否存在目标程序的虚拟地址,地址不匹配则未占用内存,地址匹配则占用内存,使得监控程序能占用更少的内存资源完成程序监控任务。
上面对本发明实施例中程序的运行监控方法进行了描述,下面对本发明实施例中程序的运行监控装置进行描述,请参阅图4,本发明实施例中程序的运行监控装置一个实施例包括:
获取模块401,用于通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
查询模块402,用于扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断模块403,用于判断所述映射虚拟地址集中是否存在所述虚拟地址;
发送模块404,用于若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
循环模块405,用于若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据。
本发明实施例中,读取共享内存中各个内存数据的映射地址,根据映射地址的不同数据进行判断是否存在目标程序的虚拟地址,地址不匹配则未占用内存,地址匹配则占用内存,使得监控程序能占用更少的内存资源完成程序监控任务。
请参阅图5,本发明实施例中程序的运行监控装置的另一个实施例包括:
获取模块401,用于通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
查询模块402,用于扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断模块403,用于判断所述映射虚拟地址集中是否存在所述虚拟地址;
发送模块404,用于若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
循环模块405,用于若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据。
其中,所述程序的运行监控装置还包括状态检测模块406,所述状态检测模块406具体用于:
调用预置状态查询函数,读取预置共享内存区的状态设置值;
判断所述状态设置值是否为零;
若不为零,则发送目标程序的无法占用内存信息至预置管理端口;
若为零,则访问预置程序接口。
其中,所述程序的运行监控装置还包括移除监控模块407,所述移除监控模块407包括:
扫描单元4071,用于根据预置监控时长,定时扫描所述共享内存区中的内存数据;
判断单元4072,用于判断所述内存数据中所述目标程序对应的内存占用数据是否被移除;
信息发送单元4073,用于若被移除,则发送所述目标程序的关闭信息至所述管理端口处。
其中,所述判断单元4072具体用于:
调用预置进程查询函数,读取所述内存数据中内存占用数据对应的返回值;
若所述返回值为空,则确定所述内存占用数据被移除;
若所述返回值不为空,则确定所述内存占用数据未被移除。
其中,所述扫描单元4071具体用于:
读取并存储所述内存占用数据对应的目标标识值;
根据预置监控时长,定时读取所述共享内存区中所有的内存标识值,得到内存标识值集。
其中,所述判断单元4072还可以具体用于:
判断所述目标标识值是否存在于所述内存标识值集中;
若存在,则所述目标程序对应的内存占用数据确认为未被移除;若不存在,则所述目标程序对应的内存占用数据确认为被移除。
其中,所述循环模块405具体用于:
读取预置重置时长、预置循环阈值N、循环统计值M,其中,M、N为正整数,N不小于M;
根据所述重置时长,扫描所述共享内存区中的内存数据,并对所述循环统计值M的赋值增加1,得到新的循环统计值M;
判断所述循环统计值M是否等于所述循环阈值N;
若等于,则停止循环扫描所述共享内存区中的内存数据;
若不等于,则基于所述重置时长,进行重新计时。
本发明实施例中,读取共享内存中各个内存数据的映射地址,根据映射地址的不同数据进行判断是否存在目标程序的虚拟地址,地址不匹配则未占用内存,地址匹配则占用内存,使得监控程序能占用更少的内存资源完成程序监控任务。
上面图4和图5从模块化功能实体的角度对本发明实施例中的程序的运行监控装置进行详细描述,下面从硬件处理的角度对本发明实施例中程序的运行监控设备进行详细描述。
图6是本发明实施例提供的一种程序的运行监控设备的结构示意图,该程序的运行监控设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)610(例如,一个或一个以上处理器)和存储器620,一个或一个以上存储应用程序633或数据632的存储介质630(例如一个或一个以上海量存储设备)。其中,存储器620和存储介质630可以是短暂存储或持久存储。存储在存储介质630的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对程序的运行监控设备600中的一系列指令操作。更进一步地,处理器610可以设置为与存储介质630通信,在程序的运行监控设备600上执行存储介质630中的一系列指令操作。
基于程序的运行监控设备600还可以包括一个或一个以上电源640,一个或一个以上有线或无线网络接口650,一个或一个以上输入输出接口660,和/或,一个或一个以上操作系统631,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图6示出的程序的运行监控设备结构并不构成对基于程序的运行监控设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述程序的运行监控方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统或装置、单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种程序的运行监控方法,其特征在于,包括步骤:
通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断所述映射虚拟地址集中是否存在所述虚拟地址;
若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据;
在所述发送所述目标程序的内存占用信息至预置管理端口处之后,还包括:
根据预置监控时长,定时扫描所述共享内存区中的内存数据;
判断所述内存数据中所述目标程序对应的内存占用数据是否被移除;
若被移除,则发送所述目标程序的关闭信息至所述管理端口处;
所述根据预置重置时长,循环扫描所述共享内存区中的内存数据包括:
读取预置重置时长、预置循环阈值N、循环统计值M,其中,M、N为正整数,N不小于M;
根据所述重置时长,扫描所述共享内存区中的内存数据,并对所述循环统计值M的赋值增加1,得到新的循环统计值M;
判断所述循环统计值M是否等于所述循环阈值N;
若等于,则停止循环扫描所述共享内存区中的内存数据;
若不等于,则基于所述重置时长,进行重新计时。
2.根据权利要求1所述的程序的运行监控方法,在所述通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址之前,还包括:
调用预置状态查询函数,读取预置共享内存区的状态设置值;
判断所述状态设置值是否为零;
若不为零,则发送目标程序的无法占用内存信息至预置管理端口;
若为零,则访问预置程序接口。
3.根据权利要求1所述的程序的运行监控方法,其特征在于,所述判断所述内存数据中所述目标程序对应的内存占用数据是否被移除包括:
调用预置进程查询函数,读取所述内存数据中内存占用数据对应的返回值;
若所述返回值为空,则确定所述内存占用数据被移除;
若所述返回值不为空,则确定所述内存占用数据未被移除。
4.根据权利要求1所述的程序的运行监控方法,其特征在于,所述根据预置监控时长,定时扫描所述共享内存区中的内存数据包括:
读取并存储所述内存占用数据对应的目标标识值;
根据预置监控时长,定时读取所述共享内存区中所有的内存标识值,得到内存标识值集。
5.根据权利要求4所述的程序的运行监控方法,其特征在于,所述判断所述内存数据中所述目标程序对应的内存占用数据是否被移除包括:
判断所述目标标识值是否存在于所述内存标识值集中;
若存在,则所述目标程序对应的内存占用数据确认为未被移除;若不存在,则所述目标程序对应的内存占用数据确认为被移除。
6.一种程序的运行监控装置,其特征在于,所述程序的运行监控装置包括:
获取模块,用于通过预置程序接口,访问待监控的目标程序,并获取所述目标程序的虚拟地址;
查询模块,用于扫描预置共享内存区中的内存数据,查询所述内存数据中所有的映射虚拟地址,生成映射虚拟地址集;
判断模块,用于判断所述映射虚拟地址集中是否存在所述虚拟地址;
发送模块,用于若存在,则发送所述目标程序的内存占用信息至预置管理端口处;
循环模块,用于若不存在,则根据预置重置时长,循环扫描所述共享内存区中的内存数据;
所述程序的运行监控装置还包括移除监控模块,所述移除监控模块包括:
扫描单元,用于根据预置监控时长,定时扫描所述共享内存区中的内存数据;
判断单元,用于判断所述内存数据中所述目标程序对应的内存占用数据是否被移除;
信息发送单元,用于若被移除,则发送所述目标程序的关闭信息至所述管理端口处;
所述循环模块具体用于:
读取预置重置时长、预置循环阈值N、循环统计值M,其中,M、N为正整数,N不小于M;
根据所述重置时长,扫描所述共享内存区中的内存数据,并对所述循环统计值M的赋值增加1,得到新的循环统计值M;
判断所述循环统计值M是否等于所述循环阈值N;
若等于,则停止循环扫描所述共享内存区中的内存数据;
若不等于,则基于所述重置时长,进行重新计时。
7.一种程序的运行监控设备,其特征在于,所述程序的运行监控设备包括:存储器和至少一个处理器,所述存储器中存储有指令,所述存储器和所述至少一个处理器通过线路互连;
所述至少一个处理器调用所述存储器中的所述指令,以使得所述程序的运行监控设备执行如权利要求1-5中任一项所述的程序的运行监控方法。
8.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5中任一项所述的程序的运行监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496512.3A CN112463544B (zh) | 2020-12-17 | 2020-12-17 | 程序的运行监控方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011496512.3A CN112463544B (zh) | 2020-12-17 | 2020-12-17 | 程序的运行监控方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463544A CN112463544A (zh) | 2021-03-09 |
CN112463544B true CN112463544B (zh) | 2023-05-02 |
Family
ID=74803621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011496512.3A Active CN112463544B (zh) | 2020-12-17 | 2020-12-17 | 程序的运行监控方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463544B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107562586A (zh) * | 2017-08-16 | 2018-01-09 | 努比亚技术有限公司 | 一种内存检测方法、设备及计算机存储介质 |
US10552308B1 (en) * | 2017-06-23 | 2020-02-04 | Square, Inc. | Analyzing attributes of memory mappings to identify processes running on a device |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9274946B2 (en) * | 2009-12-30 | 2016-03-01 | International Business Machines Corporation | Pre-leak detection scan to identify non-pointer data to be excluded from a leak detection scan |
CN102388368B (zh) * | 2011-09-20 | 2013-10-02 | 华为技术有限公司 | 一种内存监控方法及装置 |
CN104751050A (zh) * | 2015-04-13 | 2015-07-01 | 成都睿峰科技有限公司 | 一种客户端应用程序管理方法 |
CN106560798B (zh) * | 2015-09-30 | 2020-04-03 | 杭州华为数字技术有限公司 | 一种内存访问方法、装置及计算机系统 |
-
2020
- 2020-12-17 CN CN202011496512.3A patent/CN112463544B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552308B1 (en) * | 2017-06-23 | 2020-02-04 | Square, Inc. | Analyzing attributes of memory mappings to identify processes running on a device |
CN107562586A (zh) * | 2017-08-16 | 2018-01-09 | 努比亚技术有限公司 | 一种内存检测方法、设备及计算机存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112463544A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096336B (zh) | 数据监控方法、装置、设备和介质 | |
CN107506240B (zh) | 后台应用程序管控方法、装置、存储介质及电子设备 | |
CN110912782B (zh) | 一种数据采集方法、装置及存储介质 | |
CN102063338A (zh) | 一种请求独占资源的方法及装置 | |
CN111625419A (zh) | 一种日志采集方法、系统、设备及计算机可读存储介质 | |
CN113656357A (zh) | 文件管理方法、装置、系统及存储介质 | |
CN112148477A (zh) | 服务进程处理方法、电子装置及存储介质 | |
CN114070755B (zh) | 虚拟机网络流量确定方法、装置、电子设备和存储介质 | |
CN113326104B (zh) | 一种虚拟机内部配置的修改方法、系统及装置 | |
CN114553762A (zh) | 一种对流表中的流表项处理的方法及装置 | |
CN112463544B (zh) | 程序的运行监控方法、装置、设备及存储介质 | |
CN112559565A (zh) | 一种异常检测方法、系统及装置 | |
CN109254858B (zh) | 活动窗口的数据共享方法、装置、设备及存储介质 | |
CN114637656B (zh) | 基于Redis的监控方法、装置、存储介质和设备 | |
CN107688481B (zh) | 一种支持多节点的kvm虚拟机隐藏进程检测系统 | |
CN111376255A (zh) | 机器人数据采集方法、装置及终端设备 | |
CN114417069A (zh) | 页面数据交互方法、装置及电子设备 | |
CN111885159B (zh) | 数据采集方法、装置、电子设备及存储介质 | |
CN111090627B (zh) | 基于池化的日志存储方法、装置、计算机设备及存储介质 | |
CN113342270A (zh) | 卷卸载方法、装置和电子设备 | |
CN111352710B (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN114356517B (zh) | 一种串行总线资源管理方法、系统、电子设备及存储介质 | |
CN118051332A (zh) | 目标服务运行方法、装置及可读存储介质 | |
CN109471663B (zh) | 单片机程序的执行方法及装置 | |
CN110928738B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 1301-1310, building 2, jinlitong financial center building, 1100 Xingye Road, Haiwang community, Xin'an street, Bao'an District, Shenzhen, Guangdong 518000 Patentee after: Shenzhen Ruan Niu Technology Group Co.,Ltd. Address before: No.2903, 15-3, Haitian Road, building C, excellence Times Plaza, n23, Haiwang community, Xin'an street, Bao'an District, Shenzhen City, Guangdong Province Patentee before: AFIRSTSOFT CO.,LTD. |