8

通过运行时基准测试优化 PHP 代码是直截了当的。通过代码块周围的 microtime() 跟踪 $start 和 $end 时间 - 我不是在寻找涉及 microtime() 使用的答案。

我想做的是测量 PHP 准备运行它的代码所需的时间 - 代码解析/操作代码树构建时间。我的理由是,虽然很容易为站点上的每个页面包含()您可能需要的每个类,但 CPU 开销不能“免费”。我想知道解析时间到底有多“昂贵”。

我假设 APC 等操作码缓存不是场景的一部分。

我是否正确认为 PHP 中的解析时间测量必须在 mod_php 中进行?

编辑:如果可能的话,考虑到$_SERVER['DOCUMENT_ROOT']代码中的使用会有所帮助。命令解决方案可能需要一些修补才能做到这一点(但仍然是有价值的答案)。

4

3 回答 3

10

是的。有。

<?php return; rest of the code ?>

或者

<?php whole code; $%^parse erorr!@! ?>

然后比较运行空脚本的时间

time php empty.php

随着我上面提到的添加运行(或失败)常规脚本所需的时间:

time php test.php

我在大文件上使用了这种方法,Core2Duo 2.4Ghz 上的 PHP5.3 每秒可以解析 1.5 到 4.5MB 的 PHP 代码(当然,这在很大程度上取决于代码的复杂性)。

于 2008-11-09T19:38:17.583 回答
2

一种方法是从命令行定时执行脚本。

以 Linux 为例:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s

这些帮助有用?也许它有助于发现不同脚本之间的相对时间,但它可能并不表示通过 Apache 模块所花费的时间

于 2008-11-09T19:36:53.653 回答
2

对于您正在寻求的详细分析级别,似乎实现 Xdebug ( http://xdebug.org/ ) 将为您提供最大的信息,而无需将您的代码分成分段。

于 2008-11-09T20:21:42.127 回答