如何测量用PHP编写的代码的速度?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我怎样才能说哪个类执行得更快(所有这些类都执行相同的任务)?有软件来测量吗?

提问于
用户回答回答于

相当“幼稚”的一个是在一部分代码之前和之后使用microtime(true)来获取执行过程中经过的时间;

如果你想基准几条指令,这是一个很好的解决方案; 比如比较两种类型的函数,例如 - 如果做了上千次,要确保任何“扰动元素”是平均值,那么会更好。

就像这样,如果你想知道序列化一个数组需要多长时间:

$before = microtime(true);

for ($i=0 ; $i<100000 ; $i++) {
    serialize($list);
}

$after = microtime(true);
echo ($after-$before)/$i . " sec/serialize\n";

不完美,但有用,并且不需要太多时间来设置。

另一种解决方案,如果你想确定哪个函数在整个脚本中占用大量时间,那么这个解决方案非常有用,那就是使用:

  • Xdebug的扩展,以生成脚本分析数据
  • 读取分析数据的软件,并为您提供可读的内容。我知道其中的三个:
    • Webgrind ; 网络界面; 应该在任何Apache + PHP服务器上工作
    • WinCacheGrind ; 只在窗户上
    • KCacheGrind ; 大概只有Linux和linux一样; 顺便说一句,这是我喜欢的那个

要获得性能分析文件,必须安装并配置Xdebug; 请查看文档的Profiling PHP Scripts页面。

用户回答回答于

为了快速操作,我(在PHP中)这样做:

$startTime = microtime(true);
doTask(); // whatever you want to time
echo "Time:  " . number_format(( microtime(true) - $startTime), 4) . " Seconds\n";

扫码关注云+社区