Performance 多变量检查vs.重复模板字符串vs.设置/取消设置变量

Performance 多变量检查vs.重复模板字符串vs.设置/取消设置变量,performance,Performance,你认为其中一种方法更好吗? 这个例子是用PHP编写的,但是其他语言的游戏规则是相同的。 1。首先创建一个if块,并在else块中复制模板字符串: if($var['b']) { $text='<tr> <td style="cursor:pointer; color:black;"></td> <td class="one">'.$var['b'].'</td> <td cl

你认为其中一种方法更好吗?
这个例子是用PHP编写的,但是其他语言的游戏规则是相同的。
1。首先创建一个if块,并在else块中复制模板字符串:

if($var['b'])
{
    $text='<tr>
        <td style="cursor:pointer; color:black;"></td>
        <td class="one">'.$var['b'].'</td>
        <td class="two">'.$var['b'].'/'.$var['a'].'</td>
        <td class="other">'.($var['a']/$var['b']).'</td>
        </tr>';
} else {
    $text='<tr>
        <td style="color:red;"></td>
        <td class="one"></td>
        <td class="two">'.$var['a'].'</td>
        <td class="other">0</td>
        </tr>';
}
$text='<tr>
    <td style="'.(($var['b'])?'cursor:pointer; color:black;':'color:red;').'"></td>
    <td class="one">'.(($var['b'])?$var['b']:'').'</td>
    <td class="two">'.(($var['b'])?$var['b'].'/'.$var['a']:$var['a']).'</td>
    <td class="other">'.(($var['b'])?($var['a']/$var['b']):'0').'</td>
    </tr>';
$css = 'color:red;';
$one = '';
$two = $var['a'];
$other = 0;
if($var['b'])
{
    $css = 'cursor:pointer; color:black;';
    $one = $var['b'];
    $two = $var['b'].'/'.$var['a'];
    $other = ($var['a']/$var['b']);
}
$text='<tr>
    <td style="'.$CSS.'"></td>
    <td class="one">'.$one.'</td>
    <td class="two">'.$two.'</td>
    <td class="other">'.$other.'</td>
    </tr>';
unset($css,$one,$two,$other);
if($var['b']))
{
$text='1
“.$var['b']”
“.$var['b']./”.$var['a'.]
“.($var['a']/$var['b'])”
';
}否则{
$text='1
“.$var['a']”
0
';
}
2。第二,反复检查同一变量,但不要复制模板字符串:

if($var['b'])
{
    $text='<tr>
        <td style="cursor:pointer; color:black;"></td>
        <td class="one">'.$var['b'].'</td>
        <td class="two">'.$var['b'].'/'.$var['a'].'</td>
        <td class="other">'.($var['a']/$var['b']).'</td>
        </tr>';
} else {
    $text='<tr>
        <td style="color:red;"></td>
        <td class="one"></td>
        <td class="two">'.$var['a'].'</td>
        <td class="other">0</td>
        </tr>';
}
$text='<tr>
    <td style="'.(($var['b'])?'cursor:pointer; color:black;':'color:red;').'"></td>
    <td class="one">'.(($var['b'])?$var['b']:'').'</td>
    <td class="two">'.(($var['b'])?$var['b'].'/'.$var['a']:$var['a']).'</td>
    <td class="other">'.(($var['b'])?($var['a']/$var['b']):'0').'</td>
    </tr>';
$css = 'color:red;';
$one = '';
$two = $var['a'];
$other = 0;
if($var['b'])
{
    $css = 'cursor:pointer; color:black;';
    $one = $var['b'];
    $two = $var['b'].'/'.$var['a'];
    $other = ($var['a']/$var['b']);
}
$text='<tr>
    <td style="'.$CSS.'"></td>
    <td class="one">'.$one.'</td>
    <td class="two">'.$two.'</td>
    <td class="other">'.$other.'</td>
    </tr>';
unset($css,$one,$two,$other);
$text='1!'
“.($var['b'])?$var['b']:”。”
“.($var['b'])?$var['b']./”.$var['a']:$var['a'])”
“.($var['b'])?($var['a']/$var['b']):'0')”
';
3。第三,单变量检查,不要复制模板字符串,设置/取消设置变量:

if($var['b'])
{
    $text='<tr>
        <td style="cursor:pointer; color:black;"></td>
        <td class="one">'.$var['b'].'</td>
        <td class="two">'.$var['b'].'/'.$var['a'].'</td>
        <td class="other">'.($var['a']/$var['b']).'</td>
        </tr>';
} else {
    $text='<tr>
        <td style="color:red;"></td>
        <td class="one"></td>
        <td class="two">'.$var['a'].'</td>
        <td class="other">0</td>
        </tr>';
}
$text='<tr>
    <td style="'.(($var['b'])?'cursor:pointer; color:black;':'color:red;').'"></td>
    <td class="one">'.(($var['b'])?$var['b']:'').'</td>
    <td class="two">'.(($var['b'])?$var['b'].'/'.$var['a']:$var['a']).'</td>
    <td class="other">'.(($var['b'])?($var['a']/$var['b']):'0').'</td>
    </tr>';
$css = 'color:red;';
$one = '';
$two = $var['a'];
$other = 0;
if($var['b'])
{
    $css = 'cursor:pointer; color:black;';
    $one = $var['b'];
    $two = $var['b'].'/'.$var['a'];
    $other = ($var['a']/$var['b']);
}
$text='<tr>
    <td style="'.$CSS.'"></td>
    <td class="one">'.$one.'</td>
    <td class="two">'.$two.'</td>
    <td class="other">'.$other.'</td>
    </tr>';
unset($css,$one,$two,$other);
$css='color:red;';
$1='';
$two=$var['a'];
$other=0;
如果($var['b']))
{
$css='光标:指针;颜色:黑色;';
$one=$var['b'];
$two=$var['b']./'.$var['a'];
$other=($var['a']/$var['b']);
}
$text='1
“一美元。”
“两美元。”
“.$其他。”
';
未结算($css,$1,$2,$other);
这是一个简单的例子,所以没关系,但是想象一下一个大项目,在这个项目中,类似这样的东西可以在单个脚本实例中使用十到一百次。在第一种情况下,我们有更大的源代码,但我们提高了速度;在第二种情况下,我们的代码很小(最难阅读),但由于多变量检查,我们失去了一些速度;第三种情况下,我们很容易阅读,不占用太多空间,但由于设置和取消设置变量,我们失去了一些速度和内存。

最近几个月,我学到了一件与这个问题相关的事情:

代码的可读性很重要,所以只要代码易于人类阅读,就不用考虑使用什么方法,因为现代编译器在以尽可能快的速度优化代码方面做得很好