【问题标题】:Looking to get millisecondes value from: microtime(true) and number_format()希望从以下位置获取毫秒值:microtime(true) 和 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)。感谢您的帮助,如果这是之前在单行命令中的答案,我真的很抱歉再次问这个问题。

【问题讨论】:

    标签: php


    【解决方案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 秒太疯狂了。某处坏了! =) 但至少,现在我可以对我的进度进行基准测试了。

    谢谢!!!

    【讨论】:

      猜你喜欢
      • 2013-04-18
      • 2013-05-26
      • 2013-07-28
      • 1970-01-01
      • 2016-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多