次の方法で共有


.NET のパフォーマンスに関するヒント

 

パフォーマンスという用語は、プログラムの実行速度を表す一般的な用語です。  ソース コード内で特定の基本規則に従うことにより、実行速度を上げることができることもあります。  プログラムによっては、コードを綿密に調べることが重要で、プロファイラーを使用して、可能な限り速く実行しているかどうかを確認することが必要な場合もあります。  一方、記述どおりに許容可能な速度でコードが実行されているため、このような最適化が必要ないプログラムもあります。  ここでは、パフォーマンスの低下が発生する一般的な状況と、パフォーマンスを向上させるためのヒント、およびパフォーマンスに関する追加のトピックについて説明します。  パフォーマンスの計画と計測の詳細については、「.NET Framework Performance」を参照してください。  

ボックス化とボックス化解除

たとえば、System.Collections.ArrayList などの非ジェネリック コレクション クラスで、頻繁に値型をボックス化する必要がある状況では、値型の使用を回避するのが最も適しています。  System.Collections.Generic.List<T> などのジェネリック コレクションを使用することで、値型のボックス化を回避できます。  ボックス化とボックス化解除は、負荷の大きい処理です。  値型をボックス化するときは、完全に新しいオブジェクトを作成する必要があります。  これには、単純な参照割り当てと比較して最大 20 倍もの時間がかかることがあります。  また、ボックス化を解除するときは、キャストのプロセスで代入の 4 倍の時間がかかることがあります。  詳細については、「ボックス化とボックス化解除」を参照してください。  

文字列

たとえば、短いループ内で多くの文字列変数を連結する場合は、C# の + 演算子または Visual Basic の連結演算子ではなく、System.Text.StringBuilder を使用します。  詳細については、「方法: 複数の文字列を連結する (C# プログラミング ガイド)」および「Concatenation Operators in Visual Basic」を参照してください。  

デストラクター

空のデストラクターは使用しないでください。  デストラクターがクラスに存在するときは、エントリが終了キューで作成されます。  デストラクターを呼び出すと、ガベージ コレクターが呼び出され、このキューを処理します。  デストラクターが空の場合は、これによってパフォーマンスが低下します。  詳細については、「デストラクター (C# プログラミング ガイド)」および「Object Lifetime: How Objects Are Created and Destroyed (Visual Basic)」を参照してください。  

その他のリソース

関連項目

.NET Framework Performance
プログラミングの概念
Visual Basic Programming Guide
C# プログラミング ガイド