microtime()的准确度如何?

时间:2013-12-07 01:20:20

标签: php microtime

我正在测试我的php代码,试着看看哪种编码方法可以最快地执行。我想最终测试我需要测试的所有PHP代码,以尝试创建我能够执行的最快速执行的代码。我从我的主页上的一个简单示例开始,使用microtime()记录执行INSERT语句之前的时间和执行后的时间,然后按如下方式回显差异:

//Lots of code
$microtime1 = microtime();
$sql1=("INSERT INTO Table (value1,value2,value3,value4,value5,value6,value7) VALUES
('$value1','$value2', '$value3', '$value4', '$value5', '$value6', 'value7' )");

if (mysqli_query($sql1)) {
    $microtime2 = microtime();
    $Difference = $microtime2 - $microtime1;
    echo "<SCRIPT>
        alert('$Difference');
        location = 'home.php';
        </SCRIPT>";
} else {
    $message = 'The site is having some technical difficulties. Please try again!";
    echo "<SCRIPT>
        alert('$message');
        location = 'home.php';
        </SCRIPT>";
}
//More code

超过10次试验,我通过在相同的输入文本框中输入相同的3个字母字符串('ddd')并单击相同的按钮(除了我之外没有其他用户登录)来启动此查询,记录 $差异每一次。我对数据中存在多少差异感到惊讶。对于这10个试验, $ Difference 的标准差为 $ Difference 平均值的40%。有没有更好的方法来做到这一点,我不知道?或者我是否必须为每个函数进行10-20次试验才能获得其他代码的可用平均值 $ Difference

1 个答案:

答案 0 :(得分:3)

你在说什么是剖析。虽然可以“自己动手”,(并且你在这方面走的是正确的道路),但是有很多有用的东西可以为你做繁重的工作。

如果你愿意,你可以随时做你建议的事情并通过循环测试的多次迭代来消除偏差,但是如果你想全面分析你的所有PHP我推荐这个问题的“xdebug”答案: Simplest way to profile a PHP script

对我来说效果很好。

相关问题