C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 52 を表示中)
■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文のどちらかが速いのかを
これだけで結論付けてはいけませんね。

返信 編集キー/


管理者用

- Child Tree -