【问题标题】:Catch Script Execution Time in PHP在 PHP 中捕获脚本执行时间
【发布时间】:2013-01-19 17:42:31
【问题描述】:

以下脚本是创建 1 个缺少 html 按钮。

<?php 
for($i=1; $i<=100000;$i++)
{
    echo "<button>".$i."</button>";
}
?>

我需要捕捉/记录时间。最后,结果应显示: 脚本需要“x”分钟、“x”秒和“x”毫秒。实际上,我正在克隆一个虚拟机,大约需要 4 到 5 分钟,具体取决于磁盘的大小。所以这就是我需要自定义输出的原因。

【问题讨论】:

标签: php time execution


【解决方案1】:

直接关闭PHP's documentation:

function microtime_float()
{
    list($usec, $sec) = explode(" ", microtime());
    return ((float)$usec + (float)$sec);
}

$time_start = microtime_float();

for ($i = 1; $i <= 100000; $i++)
{
    echo "<button>".$i."</button>";
}

$time_end = microtime_float();
$time = $time_end - $time_start;

echo "Time taken = $time seconds\n";

如果您的 PHP 脚本需要几分钟才能执行,我会非常关心您的硬件规格;)

【讨论】:

  • 谢谢!实际上我正在做我的论文项目,所以我没有这么高性能的硬件。还有一件事;根据您的程序,我得到的结果是:0.23803281784058 秒。那么有没有办法定制呢?如何将其更改为分钟:秒:毫秒?
【解决方案2】:

从开始时间减去结束时间:

<?php
$start = microtime(true);
//du stuff there like this
sleep(1);
//and print time in sec
echo microtime(true) - $start;

对于您的情况:

$start = microtime(true);

for($i=1; $i<=100000;$i++){
    echo "<button>".$i."</button>";
}

$sec = (microtime(true) - $start);
$mil = explode('.', (string)$sec);
$mil = number_format($mil[1], 3);
$min = $sec / 60;

echo "Script take '$min' minutes, '$sec' seconds and '$mil' miliseconds";

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 2018-07-09
    • 1970-01-01
    • 2010-12-31
    • 2011-02-10
    • 1970-01-01
    • 2011-02-10
    • 2018-10-27
    • 1970-01-01
    相关资源
    最近更新 更多