有没有办法在PHP中测量解析时间?

时间:2008-11-09 19:34:40

标签: php benchmarking opcode-cache

通过运行时基准测试优化PHP代码非常简单。通过代码块周围的microtime()跟踪$ start和$ end times - 我不是在寻找涉及microtime()用法的答案。

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

我假设某个操作码缓存(例如APC)是该方案的一部分。

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

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

3 个答案:

答案 0 :(得分:9)

是。有。。

<?php return; rest of the code ?>

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

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

time php empty.php

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

time php test.php

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

一种方法可以从命令行计时执行脚本。

在Linux中例如:

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

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