通过运行时基准测试优化PHP代码非常简单。通过代码块周围的microtime()跟踪$ start和$ end times - 我不是在寻找涉及microtime()用法的答案。
我想要做的是衡量PHP准备运行代码所需的时间 - 代码解析/操作代码树构建时间。我的理由是,虽然很容易只包含()您可能所需的每个类,但是您在网站上的每个页面都需要,但CPU开销不能“免费”。我想知道解析时间到底是多么“昂贵”。
我假设某个操作码缓存(例如APC)不是该方案的一部分。
我是否可以正确测量PHP中的解析时间是否必须在mod_php中进行?
编辑:如果可能,在代码中考虑$_SERVER['DOCUMENT_ROOT']
用法会很有帮助。命令解决方案可能需要做一些修补(但仍然是有价值的答案)。
答案 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模块花费的时间