Share via


方法 : ループのパフォーマンスを改善する

更新 : 2007 年 11 月

最も効率的なデータ型を使用することによって、ループのパフォーマンスを最適化できます。実行回数の少ない短いループの場合には、その差はごくわずかなものです。しかし、実行回数の多いループの場合、パフォーマンスの改善はかなり大きなものとなります。

Integer および UInteger は、現在のプラットフォームでは最も効率的な型です。Short、Long、UShort、および ULong はあまり効率的ではなりません。Decimal はかなり遅くなります。詳細については、「数値データ型」を参照してください。

For...Next ループのパフォーマンスを最適化するには

  • コントロール変数に対して最も効率的なデータ型を使用します。たとえば、ループに関して次のようなバリエーションが考えられます。絶対的なタイミングはプラットフォームに依存しますが、実行時の比較はそのまま有効です。

    For fastest As Integer = 0 to 1000000
        ' Insert statements to execute for each value of fastest.
    Next fastest
    For notAsFast As Long = 0 to 1000000
        ' Insert statements to execute for each value of notAsFast.
    Next notAsFast
    For muchSlower As Decimal = 0 to 1000000
        ' Insert statements to execute for each value of muchSlower.
    Next muchSlower
    

    1 番目の例は、2 番目の例よりほんの少しだけ実行時間が短くなります。ただし、Integer は最高 2,147,483,647 まで、UInteger は最高 4,294,967,295 までしか処理できません。2 番目と 3 番目の例では、Long と Decimal の両方とも、より広い範囲の整数を受け入れるためより大きな値を処理できますが、実行には時間がかかります。使用するデータ型の処理速度と能力を検討し、設計上の判断を下す必要があります。

参照

処理手順

方法 : 制御構造から制御を移す

方法 : 複数のステートメントを繰り返し実行する

方法 : コレクションまたは配列で、各要素の複数のステートメントを実行する

方法 : ループの次の反復処理にスキップする

概念

ループ構造

参照

For...Next ステートメント (Visual Basic)

その他の技術情報

Visual Basic における制御フロー