CN105335280A - 程序性能测试方法和装置 - Google Patents
程序性能测试方法和装置 Download PDFInfo
- Publication number
- CN105335280A CN105335280A CN201410338809.5A CN201410338809A CN105335280A CN 105335280 A CN105335280 A CN 105335280A CN 201410338809 A CN201410338809 A CN 201410338809A CN 105335280 A CN105335280 A CN 105335280A
- Authority
- CN
- China
- Prior art keywords
- function
- performance
- collection
- index
- gauge tap
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Abstract
本发明公开了一种程序性能测试方法和装置,用于基于Xhprof的PHP程序性能测试,其中的方法包括:预先设置针对PHP程序的性能测试指标的采集控制参数,且所述采集控制参数至少包括:性能测试指标的采集频率;在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取所述采集控制参数;根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标;将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中;根据所述数据库中存储的性能测试记录确定PHP程序中的函数的性能。
Description
技术领域
本发明涉及性能测试技术,特别是涉及一种程序性能测试方法以及相应的程序性能测试装置,用于基于Xhprof的PHP程序的性能测试。
背景技术
PHP(HypertextPreprocessor,超文本预处理器)是一种通用的开源脚本语言。目前,PHP主要适用于Web开发领域。
PHP程序在开发过程中通常需要进行性能测试。目前,通常会使用XHProf工具对PHP程序进行性能测试。
发明人在实现本发明过程中发现,XHProf工具目前提供的PHP程序性能测试方式无论是在PHP程序性能测试的准确性方面,还是在PHP程序性能测试的易用性方面,亦或是在PHP程序性能测试的多样性方面,都存在进一步提升的空间。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的程序性能测试方法和装置。
依据本发明的一个方面,提供了一种程序性能测试方法,用于基于Xhprof的PHP程序性能测试,包括:预先设置有针对PHP程序的性能测试指标的采集控制参数,且所述采集控制参数至少包括:性能测试指标的采集频率;在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取所述采集控制参数;根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标;将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中;根据所述数据库中存储的性能测试记录确定PHP程序中的函数的性能。
根据本发明的另一方面,提供了一种程序性能测试装置,用于基于Xhprof的PHP程序性能测试,包括:存储模块,适于预先设置有针对PHP程序的性能测试指标的采集控制参数,且所述采集控制参数至少包括:性能测试指标的采集频率;获取模块,适于在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取所述采集控制参数;采集模块,适于根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标;记录模块,适于将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中;性能模块,适于根据所述数据库中存储的性能测试记录确定PHP程序中的函数的性能。
本发明的程序性能测试方法以及装置通过预先设置包含有性能测试指标的采集频率的采集控制参数,并根据该采集频率以及采集控制参数中的其他参数采集PHP程序中的各函数在测试过程中的性能测试指标,这样,在模拟海量用户对服务器进行访问,以对服务器中的PHP程序性能测试过程中,可以避免PHP程序中的每个函数在被调用时均进行性能测试指标采集的现象,进而可以减小性能测试自身对服务器资源的消耗;本发明的采集控制参数可以根据实际测试需求来设置相应的参数项,这样,可以使PHP程序性能测试结果满足实际的多种测试需求;本发明通过在PHP程序性能测试过程中将每次获取的各性能测试记录均存储于同一个数据库中,在进行PHP程序性能分析过程中,可以方便的基于该数据库中存储的所有性能测试记录而进行各种形式的数据统计,以从PHP程序的所有函数中方便的定位出有待于进一步改进的函数,有利于PHP程序性能测试;从而本发明提高了PHP程序性能测试的准确性、易用性以及多样性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。说明书附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的程序性能测试方法流程图;
图2示出了根据本发明实施例二的程序性能测试装置示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一、程序性能测试方法。
下面结合图1对本实施例的方法进行详细说明。
图1中,S100、预先设置针对待测试PHP程序的性能测试指标的采集控制参数,且采集控制参数至少包括:性能测试指标的采集频率。
具体的,本实施例中的性能测试指标的采集频率主要用于控制性能测试指标的采集频度。
本实施例中的采集控制参数还可以根据实际测试需求而包括:总采集控制开关、实时监控性能测试指标的控制开关、函数占用CPU情况的采集控制开关、函数占用内存情况的采集控制开关、函数在预定时间间隔内调用次数的采集控制开关以及函数响应时间的采集控制开关中的一个或者多个(甚至全部)。另外,本实施例中的采集控制参数还可以包括:文本文件的路径信息和文件名称信息、以及数据库的路径信息和数据库名称信息中的一个或者两个。当然,本实施例也可以根据实际应用中的具体测试需求而添加或者删减相应的参数项。
上述总采集控制开关主要用于决定是否执行PHP程序性能测试指标的采集操作,如总采集控制开关设置为开,表示在PHP程序运行过程中执行性能测试指标的采集操作;总采集控制开关设置为关,表示在PHP程序运行过程中不执行PHP程序性能测试指标的采集操作。
上述实时监控性能测试指标的控制开关主要用于决定是否需要对采集到的性能测试指标进行实时监控,如实时监控性能测试指标设置为开,表示在每次采集到性能测试指标时均应实时显示该性能测试指标;实时监控性能测试指标设置为关,表示采集到的所有性能测试指标均不需要实时显示。
上述函数占用CPU情况的采集控制开关主要用于决定是否对函数占用CPU情况这一性能测试指标进行采集操作,如函数占用CPU情况的采集控制开关设置为开,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均应采集函数占用CPU情况这一性能测试指标;函数占用CPU情况的采集控制开关设置为关,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均不需要采集函数占用CPU情况这一性能测试指标。
上述函数占用内存情况的采集控制开关主要用于决定是否对函数占用内存情况这一性能测试指标进行采集操作,如函数占用内存情况的采集控制开关设置为开,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均应采集函数占用内存情况这一性能测试指标;函数占用内存情况的采集控制开关设置为关,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均不需要采集函数占用内存情况这一性能测试指标。
上述函数在预定时间间隔内调用次数的采集控制开关主要用于决定是否对函数在预定时间间隔内调用次数这一性能测试指标进行采集操作,如函数在预定时间间隔内调用次数的采集控制开关设置为开,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均应采集函数在预定时间间隔内调用次数这一性能测试指标;函数在预定时间间隔内调用次数的采集控制开关设置为关,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均不需要采集函数在预定时间间隔内调用次数这一性能测试指标。
上述函数响应时间的采集控制开关主要用于决定是否对所有的函数响应时间这一性能测试指标进行采集操作,如函数响应时间的采集控制开关设置为开,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均应采集所有的函数响应时间这一性能测试指标;函数占用CPU情况的采集控制开关设置为关,表示在PHP程序运行过程中每次执行性能测试指标的采集操作时均不需要采集函数占用CPU情况这一性能测试指标。
上述文本文件的路径信息和文件名称信息主要用于描述在每次采集到的性能测试指标均先暂时存储于文本文件的情况下,应依据该文本文件的路径信息和文件名称信息将性能测试指标暂时存储于相应的文本文件中;或者在每次采集到的性能测试指标均最终存储于文本文件的情况下,应依据该文本文件的路径信息和文件名称信息将性能测试指标存储于相应的文本文件中。
上述数据库的路径信息和数据库名称信息主要用于描述在每次采集到的性能测试指标直接存储于数据库的情况下,应依据该数据库的路径信息和数据库名称信息将性能测试指标直接存储于相应的数据库中;或者在每次采集到的性能测试指标先存储于文本文件中且在性能测试结束时再将文本文件中的性能测试指标存储于数据库中的情况下,应依据该数据库的路径信息和数据库名称信息将相应的文本文件中的性能测试指标存储于相应的数据库中。
S110、在模拟海量用户对服务器进行访问,以测试服务器中的PHP程序性能的过程中,获取预先设置的采集控制参数。
具体的,本实施例中的PHP程序运行于服务器中,且该服务器会面对海量用户(如数以百万计的用户)的访问,这样,运行于服务器中的PHP程序所包含的任意一个函数都有可能在一个很短的时间间隔内被多次(如数以万计,甚至数以百万计)调用执行。
获取预先设置的采集控制参数的操作通常是在进行PHP程序性能测试的开始阶段执行。采集控制参数可以采用配置文件的形式,且该配置文件可以预先设置于被测试的PHP程序所在的服务器中,这样,在PHP程序性能测试过程中,可以方便的从服务器本地存储的配置文件中获得采集控制参数。
采集控制参数中的各参数项的具体取值可以根据PHP程序性能测试需求的不同而被更改。为了方便设置采集控制参数中各参数项的取值,可以在PHP程序性能测试的开始阶段显示采集控制参数的设置界面,该界面中显示有采集控制参数所包含的所有参数项的名称以及各参数项的当前取值(如缺省值),用户可以通过该界面来设置各参数项的具体取值,如通过该界面将性能测试指标的采集频率设置为预定时间间隔、将总采集控制开关的取值设置为开、将实时监控性能测试指标的控制开关的取值设置为关、将函数占用CPU情况的采集控制开关设置为开、将函数占用内存情况的采集控制开关设置为开、将函数在预定时间间隔内调用次数的采集控制开关设置为开、将函数响应时间的采集控制开关设置为开、设置文本文件的路径信息和文件名称信息以及数据库的路径信息和数据库名称信息,然后,通过点击采集控制参数设置界面中的保存按钮等方式,使上述设置的参数项的具体取值本地存储(如存储于本地的配置文件中)。
一个配置文件的具体例子如下所示:
1、define('XHPROF_ENABLE',true);//是否开启PHP程序性能测试指标的采集操作,即设置总采集控制开关的取值;
if(XHPROF_ENABLE==true&&function_exists('xhprof_enable')){
xhprof_enable();
}
其中,上述语句中的“function_exists('xhprof_enable')”主要用于判断xhprof_enable()是否存在,以使程序逻辑更严谨且程序运行更稳定;
2、define('XHPROF_TYPE,0);//0:是性能,1:是功能(其中的性能是指性能测试应用场景,即针对大批量用户访问的情况;其中的功能是指手工性能测试应用场景,即针对测试人员手工点击实现用户访问的情况,也即针对用户访问量很小的情况);
if(XHPROF_TYPE==1){
$percent=1;调整性能测试指标的采集频率为每次用户访问都进行采集;
$run_id=$xhprof_runs->save_run($xhprof_data,"hx");开启页面监控,并且将采集数据生成一个链接在测试页面展现;
echo"<ahref='/xhprof_html/index.php?run=".$run_id."&source=sourcejoy'>view</a>";(该语句表示在性能测试完成后,所有采集数据会在测试页面自动生成一个链接,以方便用户的查看性能测试结果);
}
If(XHPROF_TYPE==1){
}
3、define('XHPROF_LOG_DATA','/usr/local/apache2/htdocs/xhprof/');//日志信息存放路径;
4、define('PERCENT',1);//记录日志信息的频率,即设置性能测试指标的采集频率的取值;
通过该函数$percent=mt_rand(1,PERCENT)生成随机数;
If($percent==1){
xhprof_enable(XHPROF_FLAGS_CPU+XHPROF_FLAGS_MEMORY);
}(该语句表示每次采集的性能测试指标应包含有函数占用CPU的详细信息和函数占用MEMORY的详细信息)
5、define('PAGEVIEW',true);//是否开启页面监控,即每次采集的数据都会生成一个包含详细采集数据的页面,该页面就是上面所提及的可以查看性能测试结果的测试页面;
if(开启性能测试&PAGEVIEW==true){
$run_id=$xhprof_runs->save_run($xhprof_data,"hx");
}(该语句表示采集的性能测试指标所存储的文件id,该文件id可以用来自动生成展示性能测试结果的测试页面)
Else
不保存监控页面;
6、define(‘BUILTINS’,true);//是否监控PHP内部函数性能数(需要特别说明的是,PHP内部函数是PHP自带的一些常用公共函数,不是PHP程序开发人员编写的,通常情况下,在进行PHP程序性能测试时,不会对PHP内部函数的代码进行核查)
if(BUILTINS==true){
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS);
}(该语句表示关闭对PHP内部函数性能测试指标的采集操作)
7、define(‘CPU_MONITOR’,true);//是否监控函数占用CPU的详细信息(如在包含PHP内部函数的情况下函数占用CPU的时间以及在不包含PHP内部函数的情况下函数占用CPU的时间),默认只监控在不包含PHP内部函数的情况下函数占用CPU的时间,此选项可用于统计更详细的CPU使用信息,本实施例通过对函数占用CPU的时间进行采集,从而可以通过函数占用CPU的时间计算出函数占用CPU的百分比;
if(CPU_MONITOR==true){
xhprof_enable(XHPROF_FLAGS_CPU);}(该语句表示监控在包含PHP内部函数的情况下函数占用CPU的详细信息)
8、define(‘MEM_MONITOR’,true);//是否监控函数占用内存的详细信息(如在包含PHP内部函数的情况下函数占用内存情况以及在不包含PHP内部函数的情况下函数占用内存情况,也可以统计内存占用峰值等数据),默认只监控在不包含PHP内部函数的情况下函数占用内存的字节数,此选项可用于统计更详细的内存占用信息;
if(MEM_MONITOR==true){
xhprof_enable(XHPROF_FLAGS_MEMORY);(该语句表示监控在包含PHP内部函数的情况下函数占用内存的详细信息)
S120、根据采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标。
具体的,本实施例应根据采集控制参数中的各参数项的设置值来执行性能测试指标的采集操作,一个具体的例子:
在采集控制参数中的总采集控制开关的设置值为开的情况下,应根据性能测试指标的采集频率来执行性能测试指标的采集操作;在采集控制参数中的总采集控制开关的设置值不为开的情况下,则不会执行任何性能测试指标的采集操作。
在实时监控性能测试指标的控制开关的设置值为开的情况下,应在根据性能测试指标的采集频率每次执行了性能测试指标的采集操作时,将采集到的性能测试指标实时显示给用户,如根据采集到的性能测试指标生成一个链接,并在监控页面中实时显示该链接的内容;在实时监控性能测试指标的控制开关的设置值不为开的情况下,则不会执行上述实时显示的操作。
在函数占用CPU情况的采集控制开关的设置值为开的情况下,应在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均应采集函数占用CPU情况这一性能测试指标;在函数占用CPU情况的采集控制开关的设置值不为开的情况下,则在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均不需要采集函数占用CPU情况这一性能测试指标。
在函数占用内存情况的采集控制开关的设置值为开的情况下,应在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均应采集函数占用内存情况这一性能测试指标;在函数占用内存情况的采集控制开关的设置值不为开的情况下,则在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均不需要采集函数占用内存情况这一性能测试指标。
在函数在预定时间间隔内调用次数(如在单位时间内调用次数)的采集控制开关的设置值为开的情况下,应开启Xhprof的方法调用次数统计功能,这样,在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均可以采集到函数在预定时间间隔内调用次数这一性能测试指标;在函数在预定时间间隔内调用次数(如函数在单位时间内调用次数)的采集控制开关的设置值不为开的情况下,则可以不开启Xhprof的调用次数统计功能,这样,在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,也不会采集到函数在预定时间间隔内调用次数这一性能测试指标。
在函数响应时间的采集控制开关的设置值为开的情况下,应开启Xhprof的函数响应时间统计功能,这样,在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均可以采集到各函数的响应时间这一性能测试指标;在函数响应时间的采集控制开关的设置值不为开的情况下,则可以不开启Xhprof的函数响应时间统计功能,这样,在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,也不会采集到各函数的响应时间这一性能测试指标。
本实施例可以通过调用Xhprof提供的相应的API(ApplicationProgrammingInterface,应用程序编程接口)来采集函数标识、函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内调用次数以及函数响应时间等性能参数指标。
获取性能参数指标的一个具体的例子为:
$mu=$PerformaceInfo['mu'];(mu表示通过采集获取到的函数占用内存的字节数,且单位为字节)
$wt=$PerformaceInfo['wt'];(wt表示通过采集而获取到的函数响应的时间)
$ct=$PerformaceInfo['ct'];(ct表示通过采集而获取到的函数在预定时间间隔内调用次数)
$cpu=$PerformaceInfo['cpu'];(cpu表示通过采集而获取到的函数花费的CPU时间(单位为微秒,即百万分之一秒))
$wt=$wt/1000;(通过该计算式可以获得函数占用内存的字节数,且单位为KB)
由于在PHP程序性能测试过程中通常会模拟海量用户(如一百万用户甚至更多)对服务器进行访问,因此,在PHP程序中的每个函数在被调用时均进行性能测试指标采集的话,则会给服务器带来较大的资源消耗,从而给服务器带来较大的压力,这会影响到PHP程序性能测试的准确性。本实施例通过根据性能测试指标的采集频率来采集性能测试指标,可以避免PHP程序中的每个函数在被调用时均进行性能测试指标采集的现象,从而可以使获得的PHP程序性能测试的结果更准确。
S130、将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中。
具体的,本实施例多次采集获得的包含有函数标识以及性能测试指标的所有性能测试记录最终会存储于同一个数据库中,以便于执行后续的性能分析操作;而且,以数据库的方式存储本次PHP程序性能测试过程中所获得的所有性能测试记录还可以方便的比较该PHP程序在优化前后的性能测试结果,有利于测试人员权衡优化PHP程序的利弊。
采集到的所有的性能测试记录存储于同一个数据库中的具体实现方式主要有如下两种:
实现方式一、在配置文件中既设置有文本文件的路径信息和文件名称信息,又设置有数据库的路径信息和数据库名称信息的情况下,在PHP程序运行过程中,根据性能测试指标的采集频率以及采集控制参数中的其他相应的参数项采集到的包含有函数标识以及性能测试指标的各性能测试记录会先根据配置文件中的文本文件的路径信息和文件名称信息存储于文本文件中,在PHP程序运行结束后,再根据配置文件中的数据库的路径信息和数据库名称信息将该文本文件中的所有性能测试记录转存储于数据库中。
实现方式二、在配置文件中没有设置文本文件的路径信息和文件名称信息,但是设置有数据库的路径信息和数据库名称信息的情况下,在PHP程序运行过程中,根据性能测试指标的采集频率以及采集控制参数中的其他相应的参数项采集到的包含有函数标识以及性能测试指标的各性能测试记录会直接根据配置文件中的数据库的路径信息和数据库名称信息存储于数据库中。
上述性能测试记录可以为Xhprof所提供的log(日志)的形式。性能测试记录所包含的函数标识可以为函数名称等能够于唯一标识PHP程序中的一个函数的标识信息;性能测试记录所包含的除了函数标识之外的其他内容取决于采集控制参数中的参数项。从PHP性能全面分析的角度考虑,性能测试记录通常会包括函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内调用次数以及函数响应时间。
上述函数占用CPU情况可以具体为:函数对CPU占用率和/或者函数对CPU的占用时间等;上述函数占用内存情况可以具体为:函数对内存占有率和/或者函数对内存占用时间等;上述函数在预定时间间隔调用次数可以具体为:函数在单位时间内被其他函数调用的次数和/或函数在单位时间内调用其他函数的次数等;上述函数响应时间可以具体为:从函数被其他函数调用开始到函数返回相应的结果所花费的时间。
S140、根据数据库中存储的性能测试记录确定PHP程序中的函数的性能。
具体的,本实施例是对数据库中存储的各性能测试记录进行统计,并对统计结果进行分析来确定PHP程序中的函数的性能的。对数据库中存储的各性能测试记录进行统计可以具体为:对属于同一个函数的性能测试指标分别进行统计计算(如求均值)。对统计结果进行分析确定PHP程序中的函数的性能可以具体为:将性能测试指标的统计计算结果与其对应的预先设置的阈值进行比较,选取出超过阈值的性能测试指标,将选取出的性能测试指标以及其所属的函数可以展示给测试用户,这些选取出的性能测试指标所属的函数是测试人员需要关注的函数;例如,可以通过对数据库中的性能测试记录的统计分析而选取出分别占用CPU最多、占用内存最多、被调用次数最多以及响应时间最慢的前10位的函数,实现函数定位,测试人员可以有针对性的对定位出的函数进行分析改进。上述预先设置的阈值可以是根据测试经验预先设置的阀值。如果在PHP程序性能测试过程中,采集到的性能测试记录需要实时的展现给测试人员,则超出预先设置的阈值的性能测试记录可以展现为不同的颜色,如字体为红色或者采用高亮方式显示。
另外,选取出的性能测试指标所属的函数所对应的所有的性能测试指标可以以折线图、统计表或者文本文件等方式呈现给测试人员;其中的折线图可以使测试人员更加直观方便的对需要改进的函数进行定位。
在采用折线图进行函数性能分析的情况下,二维坐标系的横坐标可以表示时间,二维坐标系的纵坐标可以表示性能测试指标的数值大小,这样,一个函数的一个性能测试指标可以根据其对应的采集时间而被表示于二维坐标轴中,从而该函数的多个性能测试指标形成一条折线。
一个函数的多个性能测试指标所形成的多条折线可以表示在同一个二维坐标系中;例如,在同一个二维坐标系中示出了一个函数的四条折线,这四条折线分别是针对该函数的所有函数占用CPU情况而形成的第一条折线、针对该函数的所有函数占用内存情况而形成的第二条折线、针对该函数的所有函数在预定时间间隔内调用次数而形成的第三条折线、以及针对该函数的所有函数响应时间而形成的第四条折线。
另外,多个函数的同一性能测试指标所形成的多条折线可以表示在同一个二维坐标系中;例如,可以在同一个二维坐标系中示出四个函数的四条折线,这四条折线分别是属于第一个函数的所有函数占用CPU情况所形成的第一折线、属于第二个函数的所有函数占用CPU情况所形成的第二折线、属于第三个函数的所有函数占用CPU情况所形成的第三折线以及属于第四个函数的所有函数占用CPU情况所形成的第四折线。
本实施例可以利用现有的绘图插件来绘制上述折线图,例如,将从数据库的性能测试记录中选取出的性能测试记录按照预先设定的方式提供给绘图插件,从而绘图插件可以根据其接收到的数据绘制出上述折线图。
本实施例通过对数据库中记录的所有性能测试记录的分析,可以使测试人员很方便的定位出PHP程序性能瓶颈,且数据库中记录的性能测试记录还可以很方便的和采用其他测试工具所获得的测试结果进行合并分析,以满足多种PHP程序的测试需求。
实施例二、基于Xhprof的PHP程序性能测试装置,本实施例的装置可以设置于运行需要进行性能测试的PHP程序的服务器中。
下面结合图2对本实施例的装置进行详细说明。
图2中示出的基于Xhprof的PHP程序性能测试装置通常设置于服务器中,且该装置主要包括:存储模块200、获取模块210、采集模块220、记录模块230以及性能模块240。
存储模块200主要适于预先设置有针对PHP程序的性能测试指标的采集控制参数,且这里的采集控制参数至少包括:性能测试指标的采集频率。
具体的,存储模块200中预先设置的性能测试指标的采集频率主要用于控制性能测试指标的采集频度。存储模块200中存储的采集控制参数还可以根据实际测试需求而包括:总采集控制开关、实时监控性能测试指标的控制开关、函数占用CPU情况的采集控制开关、函数占用内存情况的采集控制开关、函数在预定时间间隔内调用次数的采集控制开关以及函数响应时间的采集控制开关中的一个或者多个(甚至全部)。另外,存储模块200中存储的采集控制参数还可以包括:文本文件的路径信息和文件名称信息、以及数据库的路径信息和数据库名称信息中的一个或者两个。当然,本实施例也可以根据实际应用中的具体测试需求而添加或者删减存储模块200中存储的相应的参数项。
上述总采集控制开关、实时监控性能测试指标的控制开关、函数占用CPU情况的采集控制开关、函数占用内存情况的采集控制开关、函数在预定时间间隔内调用次数的采集控制开关、函数响应时间的采集控制开关、文本文件的路径信息和文件名称信息、以及数据库的路径信息和数据库名称信息具体如上述方法实施例中的描述,在此不再重复说明。
存储模块200可以采用配置文件的形式来存储采集控制参数。
获取模块210主要适于在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取采集控制参数。
具体的,获取模块210可以从存储模块200中获取采集控制参数,且采集控制参数中的各参数项的具体取值可以根据PHP程序性能测试需求的不同而被更改。为了方便设置采集控制参数中各参数项的取值,获取模块210可以在PHP程序性能测试的开始阶段显示采集控制参数的设置界面,该界面中显示有采集控制参数所包含的所有参数项的名称以及各参数项的当前取值(如缺省值),用户可以通过该界面来设置各参数项的具体取值,如通过该界面将性能测试指标的采集频率设置为预定时间间隔、将总采集控制开关的取值设置为开、将实时监控性能测试指标的控制开关的取值设置为关、将函数占用CPU情况的采集控制开关设置为开、将函数占用内存情况的采集控制开关设置为开、将函数在预定时间间隔内调用次数的采集控制开关设置为开、将函数响应时间的采集控制开关设置为开、设置文本文件的路径信息和文件名称信息以及数据库的路径信息和数据库名称信息,然后,通过点击采集控制参数设置界面中的保存按钮等方式,使上述设置的参数项的具体取值本地存储于存储模块200中的配置文件中。
采集模块220主要适于根据采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标。
具体的,采集模块220应根据获取模块210获得到的采集控制参数中的各参数项的设置值来执行性能测试指标的采集操作,一个具体的例子:
在采集控制参数中的总采集控制开关的设置值为开的情况下,采集模块220应根据性能测试指标的采集频率来执行性能测试指标的采集操作;在采集控制参数中的总采集控制开关的设置值不为开的情况下,则采集模块220不会执行任何性能测试指标的采集操作。
在实时监控性能测试指标的控制开关的设置值为开的情况下,采集模块220应在根据性能测试指标的采集频率每次执行了性能测试指标的采集操作时,将采集到的性能测试指标实时显示给用户,如根据采集到的性能测试指标生成一个链接,并在监控页面中实时显示该链接的内容;在实时监控性能测试指标的控制开关的设置值不为开的情况下,则采集模块220不会执行上述实时显示的操作。
在函数占用CPU情况的采集控制开关的设置值为开的情况下,采集模块220应在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均应采集函数占用CPU情况这一性能测试指标;在函数占用CPU情况的采集控制开关的设置值不为开的情况下,则采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均不需要采集函数占用CPU情况这一性能测试指标。
在函数占用内存情况的采集控制开关的设置值为开的情况下,采集模块220应在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均应采集函数占用内存情况这一性能测试指标;在函数占用内存情况的采集控制开关的设置值不为开的情况下,则采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均不需要采集函数占用内存情况这一性能测试指标。
在函数在预定时间间隔内调用次数(如在单位时间内调用次数)的采集控制开关的设置值为开的情况下,采集模块220应开启Xhprof的方法调用次数统计功能,这样,采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均可以采集到函数在预定时间间隔内调用次数这一性能测试指标;在函数在预定时间间隔内调用次数(如函数在单位时间内调用次数)的采集控制开关的设置值不为开的情况下,则采集模块220可以不开启Xhprof的调用次数统计功能,这样,采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,也不会采集到函数在预定时间间隔内调用次数这一性能测试指标。
在函数响应时间的采集控制开关的设置值为开的情况下,采集模块220应开启Xhprof的函数响应时间统计功能,这样,采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,均可以采集到各函数的响应时间这一性能测试指标;在函数响应时间的采集控制开关的设置值不为开的情况下,则采集模块220可以不开启Xhprof的函数响应时间统计功能,这样,采集模块220在根据性能测试指标的采集频率每次执行性能测试指标的采集操作时,也不会采集到各函数的响应时间这一性能测试指标。
采集模块220可以通过调用Xhprof提供的相应的API(ApplicationProgrammingInterface,应用程序编程接口)来采集函数标识、函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内调用次数以及函数响应时间等性能参数指标。
由于在PHP程序性能测试过程中通常会模拟海量用户对服务器进行访问,因此,在PHP程序中的每个函数在被调用时采集模块220均进行性能测试指标采集的话,则会给服务器带来较大的资源消耗,从而给服务器带来较大的压力,这会影响到PHP程序性能测试的准确性。本实施例中的采集模块220通过根据性能测试指标的采集频率来采集性能测试指标,可以避免PHP程序中的每个函数在被调用时均进行性能测试指标采集的现象,从而可以使获得的PHP程序性能测试的结果更准确。
记录模块230主要适于将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中。
具体的,采集模块220多次采集获得的包含有函数标识以及性能测试指标的所有性能测试记录最终会被记录模块230存储于同一个数据库中,以便于性能模块240执行后续的性能分析操作;而且,记录模块230以数据库的方式存储本次PHP程序性能测试过程中所获得的所有性能测试记录还可以方便测试人员比较该PHP程序在优化前后的性能测试结果,有利于测试人员权衡优化PHP程序的利弊。
记录模块230将采集模块220采集到的所有的性能测试记录存储于同一个数据库中的具体实现方式主要有如下两种:
实现方式一、在配置文件中既设置有文本文件的路径信息和文件名称信息,又设置有数据库的路径信息和数据库名称信息的情况下,在PHP程序运行过程中,采集模块220根据性能测试指标的采集频率以及采集控制参数中的其他相应的参数项采集到的包含有函数标识以及性能测试指标的各性能测试记录会被记录模块230先根据配置文件中的文本文件的路径信息和文件名称信息存储于文本文件中,在PHP程序运行结束后,记录模块230再根据配置文件中的数据库的路径信息和数据库名称信息将该文本文件中的所有性能测试记录转存储于数据库中。
实现方式二、在配置文件中没有设置文本文件的路径信息和文件名称信息,但是设置有数据库的路径信息和数据库名称信息的情况下,在PHP程序运行过程中,采集模块220根据性能测试指标的采集频率以及采集控制参数中的其他相应的参数项采集到的包含有函数标识以及性能测试指标的各性能测试记录会被记录模块230直接根据配置文件中的数据库的路径信息和数据库名称信息存储于数据库中。
上述性能测试记录可以为Xhprof所提供的log(日志)的形式。性能测试记录所包含的函数标识可以为函数名称等能够于唯一标识PHP程序中的一个函数的标识信息;性能测试记录所包含的除了函数标识之外的其他内容取决于采集控制参数中的参数项。从PHP性能全面分析的角度考虑,性能测试记录通常会包括函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内调用次数以及函数响应时间。
性能模块240主要适于根据数据库中存储的性能测试记录确定PHP程序中的函数的性能。
具体的,性能模块240是对数据库中存储的各性能测试记录进行统计,并对统计结果进行分析来确定PHP程序中的函数的性能的。性能模块240对数据库中存储的各性能测试记录进行统计可以具体为:性能模块240对属于同一个函数的性能测试指标分别进行统计计算(如求均值)。性能模块240对统计结果进行分析确定PHP程序中的函数的性能可以具体为:性能模块240将性能测试指标的统计计算结果与其对应的预先设置的阈值进行比较,选取出超过阈值的性能测试指标,性能模块240将选取出的性能测试指标以及其所属的函数可以展示给测试人员,这些选取出的性能测试指标所属的函数是测试人员需要关注的函数;例如,性能模块240可以通过对数据库中的性能测试记录的统计分析而选取出分别占用CPU最多、占用内存最多、被调用次数最多以及响应时间最慢的前10位的函数,实现函数定位,测试人员可以有针对性的对定位出的函数进行分析改进。上述预先设置的阈值可以测试人员是根据测试经验预先设置的阀值。如果在PHP程序性能测试过程中,采集模块220采集到的性能测试记录需要实时的展现给测试人员,则超出预先设置的阈值的性能测试记录可以展现为不同的颜色,如字体为红色或者采用高亮方式显示。
另外,性能模块240选取出的性能测试指标所属的函数所对应的所有的性能测试指标可以由性能模块240以折线图、统计表或者文本文件等方式呈现给测试人员;其中的折线图可以使测试人员更加直观方便的对需要改进的函数进行定位。
测试人员性能模块240可以利用现有的绘图插件来绘制上述折线图,例如,性能模块240将从数据库的性能测试记录中选取出的性能测试记录按照预先设定的方式提供给绘图插件,从而绘图插件可以根据其接收到的数据绘制出上述折线图。具体的有关折线图的说明请参见上述方法实施例中的描述,在此不再重复说明。
性能模块240通过对数据库中记录的所有性能测试记录的分析,可以使测试人员很方便的定位出PHP程序性能瓶颈,且数据库中记录的性能测试记录还可以很方便的和采用其他测试工具所获得的测试结果进行合并分析,以满足多种PHP程序的测试需求。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的具体描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于Xhprof的PHP程序性能测试装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是,上述实施例是对本发明进行说明,而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或者步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二以及第三等的使用不表示任何顺序,可将这些单词解释为名称。
Claims (10)
1.一种程序性能测试方法,用于基于Xhprof的PHP程序性能测试,该方法包括:
预先设置针对待测试PHP程序的性能测试指标的采集控制参数,且所述采集控制参数至少包括:性能测试指标的采集频率;
在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取所述采集控制参数;
根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标;
将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中;
根据所述数据库中存储的性能测试记录确定PHP程序中的函数的性能。
2.如权利要求1所述的程序性能测试方法,其中,所述采集控制参数还包括:总采集控制开关以及实时监控性能测试指标的控制开关;
且所述根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标包括:
在所述总采集控制开关为开且所述实时监控性能测试指标的控制开关为开的情况下,基于所述采集控制参数中的其他参数设置值采集PHP程序中的各函数在测试过程中的性能测试指标,并将采集到的性能测试记录实时呈现。
3.如权利要求1或2所述的程序性能测试方法,其中,所述性能测试指标包括:函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内的调用次数以及函数响应时间中的至少一个。
4.如权利要求3所述的程序性能测试方法,其中,所述采集控制参数还包括:函数占用CPU情况的采集控制开关、函数占用内存情况的采集控制开关、函数在预定时间间隔内调用次数的采集控制开关以及函数响应时间的采集控制开关中的至少一个。
5.如权利要求1所述的程序性能测试方法,其中,所述将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中包括:
在PHP程序运行过程中,将每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录先存储于同一个文本文件中,且在PHP程序运行结束后,将所述文本文件中的所有性能测试记录存储于同一数据库中;或者在PHP程序运行过程中,将每次采集所形成的包含有函数标识以及性能测试指标的性能测试记录均直接存储于同一个数据库。
6.如权利要求5所述的程序性能测试方法,其中,所述采集控制参数还包括:文本文件的路径信息以及文件名称信息;和/或,数据库的路径信息以及数据库名称信息。
7.如权利要求1所述的程序性能测试方法,其中,所述根据所述数据库中存储的性能测试记录确定PHP程序中各函数的性能包括:
从数据库存储的性能测试记录中选取性能测试指标超出预定阈值的性能测试记录,并根据选取的性能测试记录中的性能测试指标展现性能测试指标图示。
8.一种程序性能测试装置,用于基于Xhprof的PHP程序性能测试,该装置包括:
存储模块,适于预先设置针对待测试PHP程序的性能测试指标的采集控制参数,且所述采集控制参数至少包括:性能测试指标的采集频率;
获取模块,适于在模拟海量用户对服务器进行访问以测试服务器中的PHP程序性能的过程中,获取所述采集控制参数;
采集模块,适于根据所述采集控制参数采集PHP程序中的各函数在测试过程中的性能测试指标;
记录模块,适于将PHP程序运行过程中每次采集所形成的包含有函数标识以及性能测试指标的各性能测试记录均存储于同一个数据库中;
性能模块,适于根据所述数据库中存储的性能测试记录确定PHP程序中的函数的性能。
9.如权利要求8所述的程序性能测试装置,其中,所述采集控制参数还包括:总采集控制开关以及实时监控性能测试指标的控制开关;
且所述采集模块还适于:
在所述总采集控制开关为开且所述实时监控性能测试指标的控制开关为开的情况下,基于所述采集控制参数中的其他参数设置值采集PHP程序中的各函数在测试过程中的性能测试指标,并将采集到的性能测试记录实时呈现。
10.如权利要求8或9所述的程序性能测试装置,其中,所述性能测试指标包括:函数占用CPU情况、函数占用内存情况、函数在预定时间间隔内的调用次数以及函数响应时间中的至少一个;
且所述采集控制参数还包括:函数占用CPU情况的采集控制开关、函数占用内存情况的采集控制开关、函数在预定时间间隔内调用次数的采集控制开关以及函数响应时间的采集控制开关中的至少一个。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410338809.5A CN105335280A (zh) | 2014-07-16 | 2014-07-16 | 程序性能测试方法和装置 |
PCT/CN2015/083886 WO2016008398A1 (zh) | 2014-07-16 | 2015-07-13 | 程序性能测试方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410338809.5A CN105335280A (zh) | 2014-07-16 | 2014-07-16 | 程序性能测试方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105335280A true CN105335280A (zh) | 2016-02-17 |
Family
ID=55077912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410338809.5A Pending CN105335280A (zh) | 2014-07-16 | 2014-07-16 | 程序性能测试方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105335280A (zh) |
WO (1) | WO2016008398A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933163A (zh) * | 2016-06-24 | 2016-09-07 | 微梦创科网络科技(中国)有限公司 | 一种实时分布式调试跟踪方法及系统 |
CN106502887A (zh) * | 2016-10-13 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种稳定性测试方法、测试控制器及系统 |
CN106815017A (zh) * | 2016-12-26 | 2017-06-09 | 珠海金山网络游戏科技有限公司 | 一种动态语言性能分析及展示方法和系统 |
CN111309623A (zh) * | 2020-02-29 | 2020-06-19 | 平安科技(深圳)有限公司 | 一种坐标类数据分类测试方法及装置 |
CN111427755A (zh) * | 2020-03-10 | 2020-07-17 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的io分析方法、装置、设备和介质 |
CN112148559A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 移动app功耗测试方法、装置、系统及采集端、测试端 |
CN112596994A (zh) * | 2020-12-25 | 2021-04-02 | 福州掌中云科技有限公司 | 基于XHProf的PHP程序性能检测的方法及设备 |
CN113778516A (zh) * | 2021-09-15 | 2021-12-10 | 山东派盟网络科技有限公司 | 一种优化性能的方法、装置及设备 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106021069A (zh) * | 2016-06-01 | 2016-10-12 | 北京金山安全软件有限公司 | 一种cpu占用的检测方法、装置及设备 |
JP7002769B2 (ja) * | 2016-09-16 | 2022-02-04 | ベイラー カレッジ オブ メディスン | ウイルス特異的t細胞の活性化および拡大のためのプラットフォーム |
CN110275824B (zh) * | 2019-05-14 | 2023-02-28 | 浙江工业大学 | 一种计算机软件性能测试方法 |
CN111104311A (zh) * | 2019-11-21 | 2020-05-05 | 贝壳技术有限公司 | 性能优化的优化效果的检测方法及检测装置 |
CN112965910A (zh) * | 2021-03-19 | 2021-06-15 | 携程旅游信息技术(上海)有限公司 | 自动化回归测试方法、装置、电子设备、存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012190345A (ja) * | 2011-03-11 | 2012-10-04 | Nec Corp | ログ情報自動採取装置及びログ情報自動採取方法 |
CN103049385A (zh) * | 2012-12-29 | 2013-04-17 | 百度在线网络技术(北京)有限公司 | 一种云环境下的php代码调试方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8799861B2 (en) * | 2008-01-30 | 2014-08-05 | Intuit Inc. | Performance-testing a system with functional-test software and a transformation-accelerator |
-
2014
- 2014-07-16 CN CN201410338809.5A patent/CN105335280A/zh active Pending
-
2015
- 2015-07-13 WO PCT/CN2015/083886 patent/WO2016008398A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012190345A (ja) * | 2011-03-11 | 2012-10-04 | Nec Corp | ログ情報自動採取装置及びログ情報自動採取方法 |
CN103049385A (zh) * | 2012-12-29 | 2013-04-17 | 百度在线网络技术(北京)有限公司 | 一种云环境下的php代码调试方法及系统 |
Non-Patent Citations (3)
Title |
---|
ANDYGUO: ""2013年回顾和2014年目标"", 《HTTP://BLOG.CSDN.NET/GZH0222/ARTICLE/DETAILS/18657243?UTM_SOURCE=TUICOOL&UTM_MEDIUM=REFERRAL》 * |
SEVENTWO: ""XHProf php轻量级的性能分析工具使用手册(中文版)"", 《HTTPS://WWW.SEVEN2.COM.CN/ARCHIVES/831/》 * |
SMALLFISH: ""auto-xhprof PHP自动性能测试工具"", 《HTTP://CHENXIAOYU.ORG/2011/09/15/PHP-AUTO-XHPROF/》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933163A (zh) * | 2016-06-24 | 2016-09-07 | 微梦创科网络科技(中国)有限公司 | 一种实时分布式调试跟踪方法及系统 |
CN105933163B (zh) * | 2016-06-24 | 2019-08-27 | 微梦创科网络科技(中国)有限公司 | 一种实时分布式调试跟踪方法及系统 |
CN106502887A (zh) * | 2016-10-13 | 2017-03-15 | 郑州云海信息技术有限公司 | 一种稳定性测试方法、测试控制器及系统 |
CN106815017A (zh) * | 2016-12-26 | 2017-06-09 | 珠海金山网络游戏科技有限公司 | 一种动态语言性能分析及展示方法和系统 |
CN106815017B (zh) * | 2016-12-26 | 2020-01-07 | 珠海金山网络游戏科技有限公司 | 一种动态语言性能分析及展示方法和系统 |
CN111309623A (zh) * | 2020-02-29 | 2020-06-19 | 平安科技(深圳)有限公司 | 一种坐标类数据分类测试方法及装置 |
CN111309623B (zh) * | 2020-02-29 | 2024-04-16 | 平安科技(深圳)有限公司 | 一种坐标类数据分类测试方法及装置 |
CN111427755A (zh) * | 2020-03-10 | 2020-07-17 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的io分析方法、装置、设备和介质 |
CN111427755B (zh) * | 2020-03-10 | 2022-07-26 | 苏州浪潮智能科技有限公司 | 一种分布式文件系统的io分析方法、装置、设备和介质 |
CN112148559A (zh) * | 2020-09-16 | 2020-12-29 | 上海中通吉网络技术有限公司 | 移动app功耗测试方法、装置、系统及采集端、测试端 |
CN112596994A (zh) * | 2020-12-25 | 2021-04-02 | 福州掌中云科技有限公司 | 基于XHProf的PHP程序性能检测的方法及设备 |
CN113778516A (zh) * | 2021-09-15 | 2021-12-10 | 山东派盟网络科技有限公司 | 一种优化性能的方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2016008398A1 (zh) | 2016-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105335280A (zh) | 程序性能测试方法和装置 | |
Carvalho et al. | Determining the relative roles of species replacement and species richness differences in generating beta‐diversity patterns | |
Tsvetkov | Correlative analysis and opposition variables | |
Ward et al. | Truncation error estimates in process life cycle assessment using input‐output analysis | |
Dunn et al. | From alpha to omega: A practical solution to the pervasive problem of internal consistency estimation | |
JP6707564B2 (ja) | データ品質分析 | |
Pe'Er et al. | A protocol for better design, application, and communication of population viability analyses | |
Strayer | Statistical power of presence‐absence data to detect population declines | |
Rivadeneira et al. | The use of sighting records to infer species extinctions: an evaluation of different methods | |
Mitchell et al. | Bayesian model selection with BAMM: effects of the model prior on the inferred number of diversification shifts | |
CN103425584B (zh) | 基于Java字节码的大型应用回归测试信息处理方法 | |
CN101964036B (zh) | 漏洞检测方法及装置 | |
US9990270B2 (en) | Systems and methods to improve decision management project testing | |
CN110347561B (zh) | 监控告警方法及终端设备 | |
Pan et al. | Refactoring software packages via community detection in complex software networks | |
CN104462985A (zh) | bat漏洞的检测方法以及装置 | |
CN101346720A (zh) | 用于重建网上内容的方法和数据处理系统 | |
CN107861981A (zh) | 一种数据处理方法及装置 | |
CN106126551A (zh) | 一种Hbase数据库访问日志的生成方法、装置及系统 | |
Ampatzoglou et al. | An embedded multiple-case study on OSS design quality assessment across domains | |
CN104050197A (zh) | 一种信息检索系统评测方法和装置 | |
CN112860556A (zh) | 覆盖率统计方法、装置、计算机系统和可读存储介质 | |
Speckman et al. | AquaFlux: Rapid, transparent and replicable analyses of plant transpiration | |
CN107135199A (zh) | 网页后门的检测方法和装置 | |
Mirshokraie et al. | Atrina: Inferring unit oracles from GUI test cases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160217 |
|
RJ01 | Rejection of invention patent application after publication |