0

PHPでは、これは次のとおりです。

$ifTrue = ((1 == 1) and (2 == 2));
if ($ifTrue) {
  echo "derp";
}

これよりも高価:

if ((1 == 1) and (2 == 2)) {
    echo "derp";
}

複数行の if ステートメントをクリーンアップするために、条件式を変数に格納することにしました。これまでのところ、パフォーマンスに違いは見られません。しかし、これを行うことでメモリ内の場所を予約しているため、徐々にメモリを使い果たしていると感じています。大きなスクリプトの場合、これは検出されない可能性があるパフォーマンスへの大きな打撃になる可能性があります。

フォローアップの質問: javascript や perl などの他の言語では、費用に違いはありますか?

4

1 に答える 1

3

まず、時期尚早の最適化は常に問題を引き起こします。特定の条件がわからない場合は、実行しないでください。

次に、あなたの答えは状況によって異なります。たとえば、あなたの表現は何回使われるでしょうか?サンプル: ましょう:

$foo = very_expensive_function_here();

if($foo)
{
}
//
if($foo && something_else_1())
{
}
//...
if($foo && something_else_1000())
{
}

-この場合、1000回の高価な関数実行時間を取り除くため、速度が大幅に向上します。

しかし、あなたのケースが単一で単純なブール式だけの場合はどうなるでしょうか? それでは意味がありません.式をその場で一度だけ評価できるのに、なぜ一時変数を使用するのでしょうか?

于 2013-11-06T14:40:03.323 に答える