代码之家  ›  专栏  ›  技术社区  ›  treyBake user1850175

微时间的正确使用

  •  0
  • treyBake user1850175  · 技术社区  · 6 年前

    我试着用 microtime() .

    然而,我得到了意想不到的结果。

    根据我对这篇文章的理解( Tracking the script execution time in PHP )我应该能减法 $before $after 以秒为单位计算我的执行时间。

    我的剧本是这样写的:

    <?php
        $int = 4;
    
        $before = microtime(true);
    
        print_r(filter_var($int, FILTER_VALIDATE_INT));
        echo '<br />';
    
        $after = microtime(true);
    
        echo ($after - $before). 'sec' ."\n";
        echo '<br />';
    
        $int = 4;
    
        $before = microtime(true);
    
        print_r(is_int($int));
        echo '<br />';
    
        $after = microtime(true);
    
        echo ($after - $before) .'sec' ."\n";
    

    我知道这不是一个精确的执行时间迭代,因为它不会循环函数X次以获得平均值-只是在一开始做一个基本的测试,所以请忽略这一点。

    4

    9.5367431640625E-7秒

    页面加载不到一秒钟-那为什么 9.XYZ 出现让我有点困惑。

    我在用吗 微时间()

    我把剧本改成这样:

    <?php
        function checkInt($int)
        {
            return is_int($int);
        }
    
        function checkIntFilter($int)
        {
            return filter_var($int, FILTER_VALIDATE_INT);
        }
    
        $before = microtime(true);
    
        for ($i = 1; $i < 1000; $i++)
        {
            checkInt(4);
        }
    
        $after = microtime(true);
    
        echo ($after - $before). ' sec' .'<br />';
    
        $before = microtime(true);
    
        for ($i = 1; $i < 1000; $i++)
        {
            checkIntFilter(4);
        }
    
        $after = microtime(true);
    
        echo ($after - $before). ' sec';
    


    0.00024008750915527秒

    然而,我的页面肯定在7秒内加载-第二个结果看起来是正确的,但我不确定第一个。。。

    1 回复  |  直到 4 年前
        1
  •  2
  •   yivi SilverLink    6 年前

    您没有正确读取结果。这就是 scientific notation

    7.1048736572266E-5 秒等于 0.000071048736572266 秒。