有没有办法将脚本执行所需的秒数(或“页面加载时间”)放在页面中间


Is there a way to put the number of seconds a script takes to execute (or "page load time") in the middle of the page?

我想把搜索脚本在PHP中搜索所需的秒数放进去。但是,我不想把那个数字放在页面的底部。我把这个放在PHP文件的顶部:

$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);
?>