当前位置: 网学 > 编程文档 > PHP > 正文

PHP性能优化工具篇Benchmark类调试执行时间

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/20

【编者按】网学网PHP频道为大家收集整理了“PHP性能优化工具篇Benchmark类调试执行时间“提供大家参考,希望对大家有所帮助!

这是PHP性能优化系列第二期,如何使用PEAR工具类Benchmark逐行获取代码或函数的执行时间。

工欲善其事,必先利其器!

如何安装PEAR和Benchmark

请参考PHP性能优化系列第一期 [PHP性能优化准备篇图解PEAR安装]

Benchmark工具类包说明

直接下载:/uploadfile/201306/20/00163457682.png">

另外一种是手动var_dump或print_r打印,$timer->getProfiling();,print_r函数打印如下图

    array0 =>array''name'' => string ''Start'' (length=5)''time'' => string ''1265942405.31334800'' (length=19)''diff'' => string ''-'' (length=1)''total'' => string ''-'' (length=1)1 =>array''name'' => string ''marker 01'' (length=9)''time'' => string ''1265942405.31374400'' (length=19)''diff'' => string ''0.000396'' (length=8)''total'' => string ''0.000396'' (length=8)2 =>array''name'' => string ''marker 02'' (length=9)''time'' => string ''1265942405.31423000'' (length=19)''diff'' => string ''0.000486'' (length=8)''total'' => string ''0.000882'' (length=8)3 =>array''name'' => string ''marker 03'' (length=9)''time'' => string ''1265942405.31519200'' (length=19)''diff'' => string ''0.000962'' (length=8)''total'' => string ''0.001844'' (length=8)4 =>array''name'' => string ''Stop'' (length=4)''time'' => string ''1265942405.31623800'' (length=19)''diff'' => string ''0.001046'' (length=8)''total'' => string ''0.002890'' (length=8)


结果说明
1,name表示标注名称,如上 包含两个特殊标注start和stop表示开始和结束,其次是自定义标注 marker 01 marker 02等
2,time表示当前的微秒时间
3,diff表示上一个标记到当前标记的执行时间,这个就是我们需要获取的时间差,没错,看的就是这个值。
4,total表示执行到当前的整个时间

如何使用Benchmark_Iterate类

Benchmark_Iterate类用于调试函数执行的平均时间,与Benchmark_Timer类不同在于可以多次调用同一个函数获取其执行时间的平均值,实例如下:

    require_once "Benchmark/Iterate.php";$bench = new Benchmark_Iterate;function test($i){ echo $i;}$bench->run(100,"test",10);var_dump($bench->get());


通过调用test函数100次获取平均执行时间,结果如下

    array1 => string ''0.000486'' (length=8)2 => string ''0.000466'' (length=8).............................(中间省略)99 => string ''0.000479'' (length=8)100 => string ''0.000467'' (length=8)''mean'' => string ''0.000476'' (length=8)''iterations'' => int 100


结果说明
1,每个数字表示每次调用的时间
2,mean表示函数执行的平均时间,如上调用100次test函数的平均时间为0.000476
3,iterations表示函数调用的次数

如何使用Benchmark_Profiler类


Benchmark_Profiler类用于统计函数的执行次数和执行时间等,实例如下:

    require_once ''Benchmark/Profiler.php'';$profiler = new Benchmark_Profiler(TRUE);function myFunction() { global $profiler; $profiler->enterSection(''myFunction''); //do something $profiler->leaveSection(''myFunction''); return;}//do somethingmyFunction();//do more


结果如下

php-performance-benchmark-profiler

Benchmark_Profiler类在实际性能调试中使用并不多,因为还有比这个更好的工具,如xDebuger等,因此可直接忽略!

Benchmark 工具类在使用调试中针对逐行调试来分析程序性能问题非常实用,主要使用Benchmark_Timer类调试各代码段的时

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号