| ■28609 / ) |
Re[13]: 【速度】 IF文とSELECT文 VB.NET |
□投稿者/ よねKEN (208回)-(2008/11/28(Fri) 10:18:13)
|
2008/11/28(Fri) 10:19:42 編集(投稿者)
>>VB は?なので、条件によって If より Select の方が速くなることがあるのかな? > > あります・・・というか Select や switch を使うケースの場合の多くは、それを使った方が速くなる「可能性が高い(ここ大事w)」です。
この場合は話の前提として、VBのSelect文もC#のswitchで書ける程度の機能しか使わないということと 単純な整数値の値比較を行う場合、という条件が必要ですね。 その上で「可能性が高い」と。 > 今回の実測テストでは、たった 1 条件だけで比較したため、上記のメリットが全く見えていません。
その通りですね。 1条件だとIf文もSelect文もほぼ同じILコードにコンパイルされます。 1点異なるのは、Select文は注目する変数を一旦内部的に生成したローカル変数に格納して、 各Case節と比較する際に、読み出して比較するという点です。 No28305 のコード例では、この内部的なローカル変数への格納と読み出しの分だけ、Select文の方が 遅いという結果になっていますね。
1条件だけの実験は、If文の方が速くなる条件なので、If文とSelect文のどちらかが速いのかを これだけで結論付けてはいけませんね。
|
|