[英]PHP: Time speed of functions, but it's too fast?
我真的一直想测试正则表达式等的速度,在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的非常随机的数字。它没有显示值得进行基准测试的值!
usleep函数需要以毫秒为单位的时间,您指定的值非常低,请尝试增加该值:
usleep(2000000); // wait for two seconds
在Windows系统上,usleep功能也很棘手。
或者,您可以简单地使用带有秒数的sleep函数作为其参数,例如:
sleep(10); // wait for 10 seconds
无法复制, 没有人拥有比我更快的计算机。 16个执行线程,八个内核,i7架构。 您的PHP版本或操作系统必须不是最佳的。 这正是在运行您的代码。
`--> php tmp.php Did nothing in 0.00011587142944336 seconds .-(/tmp)---------------------------------------------------(pestilence@pandemic)-
这与usleep(1000000)...(1秒)
`--> php tmp.php Did nothing in 1.0000479221344 seconds .-(/tmp)---------------------------------------------------(pestilence@pandemic)-
仅供参考,我使用的是PHP 5.3.0,并不是说它在5.0之后没有任何区别(在这种情况下)。
您的代码执行时间不到一秒钟吗? 如果是这样,那就可以解释您的基准测试。 当我分析某篇文章的内容时,我的例行程序运行了10,000次,有时甚至是数百万次。 这些天计算机速度很快。
就“随机”部分而言,这就是为什么我要抽取几个大迭代样本并将它们平均在一起的原因。 将标准偏差也放到那里也没有什么害处。 另外,请记住不要在测试时流式传输MP3或播放视频。 :p
计时器就是这样。 在函数周围包装一个循环。 如果要测量微秒,请运行10 ^ 6次,如果要毫秒,请运行10 ^ 3次。 不要期望得到超过2个十进制数字的精度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.