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;
}