希望从以下位置获取毫秒值:microtime(true) 和 number_format()
Posted
技术标签:
【中文标题】希望从以下位置获取毫秒值:microtime(true) 和 number_format()【英文标题】:Looking to get millisecondes value from: microtime(true) and number_format() 【发布时间】:2014-02-04 05:14:33 【问题描述】:好的,我知道这不是关于 microtime 和 number_format 的第一个问题,但似乎没有人能够提出一个虚拟的证明答案。所以,作为假人,这是我的问题:
如何以毫秒为单位从 2 个 microtime(true) 变量中输出结果。我的意思是 1 是 1 毫秒,1000 是 1 秒。
因此,如果花费不到一毫秒,我得到 1。如果花费 1/2 秒,我得到 500。
我目前这样做: number_format((microtime(true)-$timetrace), 4)
我明白了: 1,391,490,671.8339 =)
$timetrace 之前在代码中设置为 $timetrace = microtime(true)。感谢您的帮助,如果这是之前在单行命令中的答案,我真的很抱歉再次问这个问题。
【问题讨论】:
【参考方案1】:这与number_format
无关。
我敢打赌,你没有把你想要的东西放在你的 $timetrace
变量中。
看这个例子:
<?php
$timetrace = microtime(true);
sleep (1); // wait about 1 second
$elapsed_time = microtime(true) - $timetrace;
echo "$elapsed_time<br>";
echo number_format($elapsed_time, 4) . "<br>";
?>
输出:
1.0120580196381
1.0121
【讨论】:
嘿,谢谢!但是当我使用 true 时,即使数字格式为 4,我最后也会得到 E 的值。或者我得到数百万的值。是否有任何配置服务器可以影响这些功能?尤其是 Number_format 可能? 不。您传递了错误的值number_format
,仅此而已。如果您的 $timetrace
变量设置不正确,那么差异将是巨大的,您将得到一个愚蠢的输出。正如我已经说过的,打印$timetrace
的内容,您会发现它不包含您所期望的内容。
你把 mu 放在了正确的方向上。我最终得到了一个稍微不同的功能来管理它,但是非常感谢!!!!【参考方案2】:
根据 kuroi neko 的建议,我确实构建了一个小功能,它运行良好!非常感谢!!
Function ms($overall=0)
global $timetrace;
global $starttrace;
if ($overall==1)
$result = microtime(true) - $initialtrace;
else
$result = microtime(true) - $timetrace;
$result = number_format($result, 4);
$result = $result * 1000;
if ($result < 1)$result = 1;
// Reset timetrace
$timetrace = microtime(true);
return $result." ms<br>";
在代码中我只需要输入: if (isset($timetrace)) echo "CPU$==# 启动时间 = ".ms();
这给了我上次回声之间所花费的时间。 (isset其实是我一开始配置的变量,看我是否处于'时间调试模式')
如果我通过 1 - echo "CPU$==# 启动时间 = ".ms(1); - 我得到的是自页面顶部以来脚本总持续时间的结果,而不是最后一次回显。
这是一个输出示例:
CPU$==# INSERT = 12.4 ms
CPU$==# DATE SET FOR GOOGLE QUERY = 530.4 ms
CPU$==# GOOGLE QUERY EXECUTED = 308.8 ms
CPU$==# INSERT 606 ROW = 12290.3 ms
CPU$==# CLOSE LOG WITH SUCCESS = 25.4 ms
Success
是的,性能真的很糟糕。仅用于准备 google 查询的前 530 毫秒太高了,插入 600 行的 12 秒太疯狂了。某处坏了! =) 但至少,现在我可以对我的进度进行基准测试了。
谢谢!!!
【讨论】:
以上是关于希望从以下位置获取毫秒值:microtime(true) 和 number_format()的主要内容,如果未能解决你的问题,请参考以下文章
PHP_EOL 写入字符串换行 , php获取毫秒 microtime
如何从日期对象python获取以毫秒(秒后3位小数)为单位的时间值?