IF语句的微优化

时间:2013-09-12 16:11:56

标签: php micro-optimization

我一直在研究如何每天越来越多地优化代码,以及如何学习编写更快的代码。

在线查看一些缩小的JS,我注意到将一些IF更改为一个语句,我认为在PHP中开始使用它可能是一个非常好的主意。

<?php
if(!isset($myVar) || $myVar == 'val'){
    $myVar = 'oldVal';
}
if(isset($myVar2) && $myVar2 == 'oldVal'){
    $myVar2 = 'newVal';
}
?>

<?php
(!isset($myVar) || $myVar == 'val') && $myVar = 'oldVal';
isset($myVar2) && $myVar2 == 'oldVal' && $myVar2 = 'newVal';
?>

由于我喜欢新的语法,我开始越来越多地考虑使用它来节省处理时间,但是我真的保存了它们,或者内部没有任何区别吗?

(示例代码仅为示例,仅显示技术)

1 个答案:

答案 0 :(得分:2)

我使用此代码来分析两种方法:

<?php

$iterations = 1000000;
$startTime = microtime( true );

$i = 0;
while( ++$i < $iterations ) {
    if(!isset($myVar) || $myVar == 'val'){
        $myVar = 'oldVal';
    }
    if(isset($myVar) && $myVar == 'oldVal'){
        $myVar = 'newVal';
    }
}

echo 'First Running Time: ' . (microtime(true) - $startTime) . "\n";


$startTime = microtime( true );
$i = 0;
while( ++$i < $iterations ) {
    (!isset($myVar) || $myVar == 'val') && $myVar = 'oldVal';
    isset($myVar) && $myVar == 'oldVal' && $myVar = 'newVal';
}

echo 'Second Running Time: ' . (microtime(true) - $startTime) . "\n";

结果:

(第1次运行)

  

首次运行时间:0.38401508331299

     

第二次运行时间:0.40315389633179

(第二轮)

  

首次运行时间:0.38593697547913

     

第二次运行时间:0.40187788009644

结论:你的方法速度较慢,但​​数量太少,即使不是这样,你仍然可以更好地编写更易读的代码。