【问题标题】:PHP: Time speed of functions, but it's too fast?PHP:函数的时间速度,但是太快了?
【发布时间】:2010-01-31 05:51:34
【问题描述】:

我真的很想测试正则表达式等的速度,在 php.net 上有这个例子:

$time_start = microtime(true);

// Sleep for a while
usleep(100); // Or anything for that matter..

$time_end = microtime(true);
$time = $time_end - $time_start;

echo "Did nothing in $time seconds\n";

编辑:我的意思是播放一个大循环函数来代替 usleep()。它总是显示一个非常随机的数字,总是小于 1。它没有显示任何值得基准的东西!

【问题讨论】:

  • 您使用的是哪个 PHP 版本?

标签: php loops performance timing execution


【解决方案1】:

计时器就是这样。在函数周围环绕一个循环。如果要测量微秒,请运行 10^6 次,如果要测量毫秒,请运行 10^3 次。不要期望得到超过 2 位小数的精度。

【讨论】:

    【解决方案2】:

    usleep 函数需要以微秒为单位的时间,您指定的值非常低,请尝试增加该值:

    usleep(2000000); // wait for two seconds
    

    usleep 功能在 Windows 系统上也很棘手。

    或者您可以简单地使用 sleep 函数,将秒数指定为其参数,例如:

    sleep(10); // wait for 10 seconds
    

    【讨论】:

      【解决方案3】:

      无法复制,没有人拥有比我更快的计算机。 16 个执行线程,8 个内核,i7 架构。您的 PHP 构建或操作系统必须是次优的。这完全是在运行您的代码。

      `--> php tmp.php 在 0.00011587142944336 秒内什么也没做 .-(/tmp)-------------------------------------------- --------(瘟疫@大流行)-

      这是与 usleep(1000000)...(1 秒)

      `--> php tmp.php 在 1.0000479221344 秒内什么也没做 .-(/tmp)-------------------------------------------- --------(瘟疫@大流行)-

      仅供参考,我使用的是 PHP 5.3.0,并不是说它在 5.0 之后有任何区别(在这种情况下)。

      您的代码执行时间是否少于?如果是这样,那将解释您的基准。当我为一篇文章描述一些东西时,我会运行我的例行程序 10,000 次……有时是数百万次。现在的计算机速度很快。

      就“随机”部分而言,这就是为什么我会采集几个大迭代样本并将它们平均在一起。把标准差也扔进去也没有什么坏处。另外,请记住不要在测试时流式传输 MP3 或播放视频。 :p

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-13
        • 2023-03-23
        相关资源
        最近更新 更多