Php 是否有一种方法可以在脚本的中间放置脚本执行的秒数(或“页面加载时间”)?
我想输入搜索脚本在PHP中搜索所需的秒数。但是,我不想把这个数字放在这一页的底部。我把它放在PHP文件的顶部:Php 是否有一种方法可以在脚本的中间放置脚本执行的秒数(或“页面加载时间”)?,php,Php,我想输入搜索脚本在PHP中搜索所需的秒数。但是,我不想把这个数字放在这一页的底部。我把它放在PHP文件的顶部: $time_start = microtime(true); 然后我把这个放在呼应号码的地方: $time_end = microtime(true); echo number_format($time_end - $time_start, 5); 问题是,这并不包括整个脚本,因为还有很多其他代码在其中。有没有一种方法可以确定执行所需的时间,但可以在页面上的另一个位置而不是底部进行
$time_start = microtime(true);
然后我把这个放在呼应号码的地方:
$time_end = microtime(true);
echo number_format($time_end - $time_start, 5);
问题是,这并不包括整个脚本,因为还有很多其他代码在其中。有没有一种方法可以确定执行所需的时间,但可以在页面上的另一个位置而不是底部进行回显?不精确,但您可以使用以下方法获得非常接近的近似值:
我可以想到三种可能性:
- 回显页面底部Javascript中的值。该脚本可以在加载页面后立即修改DOM,因此该值可以插入文档中的任何位置。缺点:对于不支持或忽略Javascript的客户端不起作用
- 作弊并提前停止计时。您必须在文档中需要时间的点之前完成所有时间密集型的工作(即,将所有结果预加载到内存中,然后进行回显),因此您不测量的部分可以忽略不计。缺点:它不完全准确,预加载可能会带来麻烦或内存效率低下
- 使用缓冲所有输出,并在脚本末尾对输出缓冲区内容执行搜索和替换。缺点:根据您的情况,可能效率低下
<?php
$time_start = microtime(true);
ob_start();
// Do stuff here
$page = ob_get_contents();
ob_end_clean();
$time_end = microtime(true);
$elapsed = number_format($time_end - $time_start, 5);
var_dump($page, $elapsed);
?>