例如,你有循环:
$i=0;
while($i<5) {
$x[$i] = $a[$i] + $b[$i];
$y[$i] = $x[$i] / $c[$i];
$i++;
}
计算速度是否快于:
$i=0;
while($i<5) {
$x[$i] = $a[$i] + $b[$i];
$i++;
}
$i=0;
while($i<5) {
$y[$i] = $x[$i] / $c[$i];
$i++;
}
或者它们是一样的吗?我完全不知道代码是如何编译或执行的。
感谢您的回答。我对编程非常陌生,所以我不知道可以测试代码的效率。
答案 0 :(得分:1)
您可以衡量自己花费的时间并找出答案......
示例,借鉴Tracking the script execution time in PHP
$rustart = getrusage();
// script start
$i=0;
while($i<5) {
$x[$i] = $a[$i] + $b[$i];
$i++;
}
// Script end
function rutime($ru, $rus, $index) {
return ($ru["ru_$index.tv_sec"]*1000 + intval($ru["ru_$index.tv_usec"]/1000))
- ($rus["ru_$index.tv_sec"]*1000 + intval($rus["ru_$index.tv_usec"]/1000));
}
$ru = getrusage();
echo "This process used " . rutime($ru, $rustart, "utime") .
" ms for its computations\n";
echo "It spent " . rutime($ru, $rustart, "stime") .
" ms in system calls\n";
答案 1 :(得分:0)
第二段代码肯定会花费更多时间。
您在两段代码中执行完全相同的操作,唯一的两个区别是您将循环本身和$i
上的增量加倍。
此代码:
while ($i < 5) {
++$i;
}
无论你把它放在哪里,都会消耗相同的时间。如果你编写两次代码,则需要两倍的时间。
这就是为什么将两个作业放在同一个循环中会给你带来更好的表现。
答案 2 :(得分:0)
有一种非常简单的方法可以找到,只需将代码提供给http://3v4l.org并查看输出!
注意但是,一般来说,这取决于你在循环中做了什么,以及你想要优化的内容:
如果您想自己衡量效果,请查看基准测试工具,例如
或分析器,例如
或应用程序性能服务,例如