2

VB.NET 2008コンパイラはSelectCaseステートメントを選択的に最適化しますか?

たとえば、十分な数の整数のcaseを含むSelect Caseステートメントは、バイナリ検索として編成できます。

整数または他の基本的なデータ型が比較されている複数のElseIfを持つIfステートメントの代わりにSelectCaseを選択する必要があるかどうか知りたいので、これを尋ねます。

4

2 に答える 2

2

一般に、この種のパフォーマンスのマイクロ最適化に加えて、コードの可読性と保守性について心配する必要があります。

このスイッチが1000回(数百万回?)実行されているループ内にない限り、これがアプリのパフォーマンスのボトルベックになる可能性はほとんどありません。

一貫性を保つために、決定を下し、それに固執します。一般に、パフォーマンスのボトルネックがどこにあるかを分析するまで、コードをパフォーマンス調整しないでください。

この質問も参照してください。

于 2010-02-04T09:26:16.050 に答える
1

Select CaseElseIf40の選択肢があると、40のステートメントの文字列よりも10倍以上高速になります。これは、二分探索で期待するよりもさらに改善されています。単純な整数は、計算されたgotoステートメントに相当する最新のマシンコードを使用していると思いSelect Caseます。整数の値に基づいて適切な「ケース」に直接分岐するようにコンパイルされます。

Select Caseは一緒に行くものだと思います。

于 2010-02-06T02:00:07.453 に答える