Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在PHP中测量解析时间?_Php_Benchmarking_Opcode Cache - Fatal编程技术网

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

有没有办法在PHP中测量解析时间?,php,benchmarking,opcode-cache,Php,Benchmarking,Opcode Cache,通过运行时基准测试优化PHP代码是直截了当的。通过microtime()跟踪代码块周围的$start和$end时间-我不想寻找涉及microtime()用法的答案 我想做的是测量PHP准备运行代码-代码解析/操作代码树构建时间所需的时间。我的理由是,虽然很容易将可能需要的每个类都包含在站点上的每个页面中,但CPU开销不可能是“免费的”。我想知道解析时间到底有多“昂贵” 我假设像APC这样的操作码缓存不是场景的一部分 我认为PHP中的解析时间度量必须在mod_PHP中进行,这是正确的吗 编辑:如果

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

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

我假设像APC这样的操作码缓存不是场景的一部分

我认为PHP中的解析时间度量必须在mod_PHP中进行,这是正确的吗


编辑:如果可能,考虑代码中的
$\u服务器['DOCUMENT\u ROOT']
用法会有所帮助。命令解决方案可能需要一些修补(但仍然是有价值的答案)。

一种方法是从命令行对脚本的执行进行计时

例如,在Linux中:

$ time php5 -r 'echo "Hello world";'
Hello world
real    0m1.565s
user    0m0.036s
sys     0m0.024s
这有帮助吗?也许它有助于发现不同脚本之间的相对时间,但它可能并不表示通过Apache模块花费的时间。有

<?php return; rest of the code ?>
随着时间的推移,运行(或失败)带有我上面提到的附加内容的正则脚本:

time php test.php

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

对于您所寻求的详细分析级别,实现Xdebug()将为您提供最好的信息,而不必将您的代码分割成多段。

您有任何具体的例子来说明如何做到这一点吗?我发现Zend比我说得更好-
time php empty.php
time php test.php