まず物事最初
まず、あなたが一緒にできる限りのケースを組み合わせた場合はその優れています。
case /^\"?(Protein IDs|Accession)\"?/.test(pieces[i]):
これはパフォーマンスを向上させ、メモリ使用量を削減します。もしVS /他
スイッチはswitch文は、多くの場合、 複数の条件を評価するためのハンズダウンより良いオプションとして、他のプログラミング言語で引用されています。この はswitch文の性質のためではなく、 コンパイラがswitch文を最適化してより高速に評価できるためです。ほとんどのJavaScriptエンジンにはこのような の最適化がないため、switch文のパフォーマンスは混在しています。
Firefoxはswitch文を非常にうまく処理しますが、各条件の 評価は、それらが定義されている順番に関係なく、ほぼ同じ時間で実行されます。つまり、値が で0の場合は、値が9の場合には、実行にはほぼ同じ時間がかかります。ただし、値が9の場合、ほとんどの場合、それほど良い結果は得られません。 スイッチ ステートメントに入ると、Internet Explorer、Opera、Safari、およびChromeのすべてが顕著に表示されます。 実行時間が長くなります。ただし、これらの増加は、if文の条件が追加されるたびに発生する増加値 よりも小さくなります。したがって、 の場合と同様に、周波数の減少率の条件を に指定して、switch文のパフォーマンスを向上させることができます( の最適化と同じです)。
だから私はif文を書く!ちょっと待って。
最適化if文
代わりに書き込みの
:
if (value == 0){
return result0;
} else if (value == 1){
return result1;
} else if (value == 2){
return result2;
} else if (value == 3){
return result3;
} else if (value == 4){
return result4;
} else if (value == 5){
return result5;
} else if (value == 6){
return result6;
} else if (value == 7){
return result7;
} else if (value == 8){
return result8;
} else if (value == 9){
return result9;
} else {
return result10;
}
あなたはこのような何かを書くことができますので、9つの条件の評価ほど悪く最悪の場合イマイチ:
if (value < 6){
if (value < 3){
if (value == 0){
return result0;
} else if (value == 1){
return result1;
} else {
return result2;
}
} else {
if (value == 3){
return result3;
} else if (value == 4){
return result4;
} else {
return result5;
}
}
} else {
if (value < 8){
if (value == 6){
return result6;
} else {
return result7;
}
} else {
if (value == 8){
return result8;
} else if (value == 9){
return result9;
} else {
return result10;
}
}
出典: http://archive.oreilly.com/pub/a/server-administration/excerpts/even-faster-websites/writing-efficient-javascript.html
これはhttps://codereview.stackexchange.cの質問ですom/ – Pavlo
それは?私は一般的な質問をし、これを解決するコードを提案していますが、それは私にとってはベストプラクティスではありません。 – Gerard
私はそう信じています。 「最良の方法」は人によって異なり、潜在的な回答は主に意見に基づいています。 – Pavlo