本发明专利技术实施例提供了一种进程清理的方法及装置,在PHP解释器中创建PHP跟踪程序;利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。本发明专利技术实施例能够实时获取操作的执行过程中的函数信息并进行输出,因此,能够方便PHP脚本的开发人员快速定位PHP脚本的问题。
【技术实现步骤摘要】
一种进程清理的方法及装置
本专利技术涉及计算机
,特别是涉及一种进程清理的方法及装置。
技术介绍
在Linux、Unix等操作系统中通常运行有多个进程。目前,在进程出现运行时间长、运行错误等问题时,需要通过监控进程来分析问题的原因。现有方案可以将strace和pstack工具结合起来使用,直接用来找到影响进程运行时间的函数调用,再有针对地对相关函数进行代码分析和优化。其中,strace工具可以跟踪进程使用的底层系统调用,可输出系统调用被执行的时间点以及各个调用的耗时;pstack工具可以对指定PID(进程ID,ProcessIdentity)的进程输出函数调用栈。PHP(超文本处理器,HypertextPreprocessor)脚本是一种由PHP解释器来执行的进程,然而现有strace和pstack仅仅能够提供PHP解释器的系统调用信息,而无法提供PHP脚本的信息,因此,无法满足PHP脚本的分析需求。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种进程清理的方法和装置。依据本专利技术的一个方面,提供了一种进程清理的方法,所述方法包括:在PHP解释器中创建PHP跟踪程序;利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。可选的,所述利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息,具体包括:根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及利用所述PHP跟踪程序,监控所述变量的地址在所述操作的执行过程中的信息。可选的,在所述利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息之前,所述方法还包括:通过读取共享内存,判断所述进程对应的监控开关是否开启;在所述进程对应的监控开关开启时,利用所述PHP跟踪程序跟踪所述操作的执行过程中的函数信息;将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。可选的,所述将所述函数信息写入所述共享内存的步骤,包括:将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。可选的,所述方法还包括:利用所述PHP跟踪程序获取所述PHP解释器针对进程编译得到的操作的执行过程中的调用栈信息。可选的,所述监控开关的开启和关闭由所述命令行工具控制。依据本专利技术的另一方面,提供了一种进程清理的装置,所述装置包括:函数创建单元,用于在PHP解释器中创建PHP跟踪程序;监控单元,用于利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;检测单元,用于根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;清除单元,用于在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。可选的,所述监控单元,具体包括:地址获取子单元,用于根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及监控子单元,用于利用所述PHP跟踪程序,监控所述变量的地址在所述操作的执行过程中的信息。可选的,所述装置还包括:判断单元,用于在所述利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息之前,通过读取共享内存,判断所述进程对应的监控开关是否开启;所述监控单元,具体用于在所述进程对应的监控开关开启时,利用所述PHP跟踪程序跟踪所述操作的执行过程中的函数信息;则所述装置还包括:写入单元,用于将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。可选的,所述写入单元,具体用于将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。可选的,所述装置还包括:栈信息获取单元,用于利用所述PHP跟踪程序获取所述PHP解释器针对进程编译得到的操作的执行过程中的调用栈信息;。可选的,所述监控开关的开启和关闭由所述命令行工具控制。根据本专利技术实施例的一种进程清理的方法及装置,在PHP解释器中创建PHP跟踪程序;利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息,这里的函数信息可以为PHP函数在执行过程中的所有函数信息,如函数名、函数参数、行号、文件名等信息,并且,还可以在函数执行完成后获取函数返回值、函数调用时间等信息,这样,可以实时获取操作的执行过程中的函数信息并进行输出,因此,能够方便PHP脚本的开发人员快速定位PHP脚本的问题;而且还可以根据所述函数信息,检测到与所述PHP解释器对应的处理器的使用率大于预设阈值时,从正在运行的进程中选取并清除所述非必要进程,如此,还可以根据所述函数信息实时监控处理器的使用率,在使用率大于所述预设阈值时,清除所述非必要进程,从而使得所述处理器的工作效率得以提高。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了根据本专利技术一个实施例的一种进程清理的方法的第一种流程图;图2示出了根据本专利技术一个实施例的一种进程清理的方法的第二种流程图;图3示出了根据本专利技术一个实施例的一种进程清理的装置的结构图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。参见图1,根据本专利技术一个实施例提供了一种进程清理的方法,具体可以包括如下步骤:S101、在PHP解释器中创建PHP跟踪程序;以及S102、利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;S103、根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;S104、在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。其中,PHP脚本在PHP解释器中一般会经过词法解析、语法解析、编译生成中间代码和执行中间代码等步骤;其中,默认情况下执行中间代码的步骤是通过zend/zend_vm_execute.h文件中的zend_execute函数调用执行完成,对于所有的中间代码,默认实现是以按顺序执行,当遇到函数等情况时跳出去执行,执行完后再回到跳出的位置继续执行。在步骤S101中,在PHP解释器中创建PHP跟踪程序,所述PHP跟踪程序具体为PHPtrace函数,PHPtrace本文档来自技高网...
【技术保护点】
一种进程清理的方法,其特征在于,所述方法包括:在PHP解释器中创建PHP跟踪程序;利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。
【技术特征摘要】
1.一种进程清理的方法,其特征在于,所述方法包括:在PHP解释器中创建PHP跟踪程序;利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息;根据所述函数信息,检测与所述PHP解释器对应的处理器的使用率是否大于预设阈值;在检测到所述处理器的使用率大于所述预设阈值时,从正在运行的进程中选取非必要进程,并清除所述非必要进程。2.如权利要求1所述的方法,其特征在于,所述利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息,具体包括:根据待监控信息对应变量相对预置全局变量的偏移量,获取所述变量的地址;以及利用所述PHP跟踪程序,监控所述变量的地址在所述操作的执行过程中的信息。3.如权利要求1所述的方法,其特征在于,在所述利用所述PHP跟踪程序跟踪所述PHP解释器针对进程编译得到的操作的执行过程中的函数信息之前,所述方法还包括:通过读取共享内存,判断所述进程对应的监控开关是否开启;在所述进程对应的监控开关开启时,利用所述PHP跟踪程序跟踪所述操作的执行过程中的函数信息;将所述函数信息写入所述共享内存,由命令行工具从所述共享内存中读取所述函数信息。4.如权利要求3所述的方法,其特征在于,所述将所述函数信息写入所述共享内存的步骤,包括:将所述函数信息写入所述共享内存中所述进程对应的内存映射文件。5.如权利要求1或2或3或4所述的方法,其特征在于,所述方法还包括:利用所述PHP跟踪程序获取所述PHP解释器针对进程编译得到的操作的执行过程中的调用栈...
【专利技术属性】
技术研发人员:任勇全,赵安安,陈磊,
申请(专利权)人:北京奇虎科技有限公司,奇智软件北京有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。