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

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

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

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

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

有帮助吗?

解决方案

是。有。。

<?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代码(当然,这很大程度上取决于代码的复杂性)。

其他提示

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

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

在Linux中例如:

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top