2

任意の数値を持つ可能性のあるsomeIntという変数を取り上げましょう。0かどうかを確認する必要があります。

if($someInt!=0) {
  // someInt is not 0, this is the most probable
} else {
  // someInt is 0.
}

//VS

if($someInt==0) {
  // highly unlikely... perform a jump
} else {

}

どちらがより最適ですか?(読みやすさ以外に)違いはありますか?

私が疑問に思っている別の種類の関連事項:配列に次のような項目があるかどうかをチェックする習慣があります。

if($myArray.length != 0) {

}
 // instead of
if($myArray.length > 0) {

}

「!=」に注意してください。array.lengthは0または0より大きい場合のみ可能であるため、「!=」チェックの方が最適ですか?Visual Basic 6では常にこの方法で行ってきたので、これを求めています。そこでは明らかに高速に動作しました。他の言語はどうですか?

4

2 に答える 2

3

最も可能性の高い条件は一番上にあるはずです。このようにして、パーサーは可能性の低いケースをスキップし、過度に最適化されたアプリケーションを取得します。

2番目の質問はマイクロ最適化です。パフォーマンスの面で何らかの違いが生じるとは思えません。

于 2012-07-16T15:59:27.983 に答える
0

ifステートメントの場合、ifステートメントの上位にある可能性が高いので、読みやすさの点から、またパフォーマンスの点からも、これはより理にかなっています。配列セクションに関しては、$array.length>0の方が読みやすくなっています。ただし、パフォーマンスはそれほど頻繁に呼び出されるべきではないため、パフォーマンスが問題になることはありません。配列の長さを常にチェックするよりも、結果をキャッシュする方が適切です。

于 2012-07-16T15:59:14.157 に答える