Php 我们是否可以使用$#u SERVER[';REQUEST#u TIME\u FLOAT';]来获得可靠的处理时间?

Php 我们是否可以使用$#u SERVER[';REQUEST#u TIME\u FLOAT';]来获得可靠的处理时间?,php,execution-time,time-measurement,Php,Execution Time,Time Measurement,我看到每个人都建议使用一个变量,比如 $start_time = microtime(TRUE); 在脚本顶部,然后在最后一行,我们执行以下操作: $process_time = microtime(TRUE) - $start_time; 我的问题是,我们能否可靠地使用$\u服务器['REQUEST\u TIME\u FLOAT']并完全跳过$start\u时间?如果是这样,为什么每个人仍然建议在上面使用$start_time 举例说明我的意思: <?php // No need f

我看到每个人都建议使用一个变量,比如

$start_time = microtime(TRUE);
在脚本顶部,然后在最后一行,我们执行以下操作:

$process_time = microtime(TRUE) - $start_time;
我的问题是,我们能否可靠地使用
$\u服务器['REQUEST\u TIME\u FLOAT']
并完全跳过$start\u时间?如果是这样,为什么每个人仍然建议在上面使用$start_time

举例说明我的意思:

<?php
// No need for $start_time...

// All the stuff we do to have the benchmark at the end

// Only this line needed to display execution time
echo "Processed in: ". bcsub(microtime(TRUE), "{$_SERVER['REQUEST_TIME_FLOAT']}", 4);
?>

这取决于您试图测量的内容

$\u服务器['REQUEST\u TIME\u FLOAT']
在您的Web服务器连接到PHP时设置。这意味着PHP开始处理请求的时间戳始终是。因此,如果您想测量PHP到达特定点所花的时间,可以使用它。缺点是,在PHP进入您的代码之前,您并不真正知道它在做什么。PHP的
自动前置
配置中可能有一些文件甚至在读取代码的第一行之前就占用了处理时间。但是如果你真的想测量时间,你必须使用这个属性


另一方面,您可以随时请求
microtime(true)
,这有助于测量特定代码段的性能。例如也许您在MVC框架中,您只想测量模型获取和准备数据库结果集所需的时间,而不关心框架确定需要调用哪个控制器/操作所需的时间,也不关心控制器向模型询问信息所需的时间。

可能重复的@ChrisWhite谢谢你,但它没有回答我的问题,这句话对我解释得很好:
缺点是在PHP进入你的代码之前你并不知道它在做什么,谢谢!