Php 哪个更有效?1个循环带2个方程还是2个循环带一个方程?
例如,您有一个循环:Php 哪个更有效?1个循环带2个方程还是2个循环带一个方程?,php,loops,Php,Loops,例如,您有一个循环: $i=0; while($i<5) { $x[$i] = $a[$i] + $b[$i]; $y[$i] = $x[$i] / $c[$i]; $i++; } $i=0; 而($i你可以测量自己花费的时间并找出答案 例如,借用自 $rustart=getrusage(); //脚本开始 $i=0; 而($i第二段代码肯定会花费更多的时间。 在这两段代码中执行完全相同的操作,唯一的两个区别是循环本身加倍,并且在$i上增加 此代码: while
$i=0;
while($i<5) {
$x[$i] = $a[$i] + $b[$i];
$y[$i] = $x[$i] / $c[$i];
$i++;
}
$i=0;
而($i你可以测量自己花费的时间并找出答案
例如,借用自
$rustart=getrusage();
//脚本开始
$i=0;
而($i第二段代码肯定会花费更多的时间。
在这两段代码中执行完全相同的操作,唯一的两个区别是循环本身加倍,并且在$i
上增加
此代码:
while ($i < 5) {
++$i;
}
while($i<5){
++$i;
}
无论你把它放在哪里,它都会消耗相同的时间。如果你写两次代码,它将花费两倍的时间
这就是为什么将两个赋值放在同一个循环中会给您带来更好的性能。有一个非常简单的方法可以找到,只需将代码输入到其中并查看输出
例1
- 性能:
- VLD操作码:
例1
- 性能:
- VLD操作码:
注意一般来说,这取决于您在循环中所做的工作,以及您希望优化的内容:
- 代码的性能
- 代码的可读性
如果您想自己测量性能,请查看基准测试工具,例如
或分析器,例如
或应用程序性能服务,例如
一旦你能够告诉自己性能的真正含义,你就应该能够自己回答这个问题。或者做一些测试和测量……第一个循环比第二个循环花费的时间少。如果你想知道,试试看。如果你想知道它是如何编译的,看看,或者提供这些脚本给你。
$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";
while ($i < 5) {
++$i;
}