次の方法で共有


.NET Framework の使用に関するパフォーマンス規則

.NET Framework の使用カテゴリのパフォーマンス規則は、最適化の対象となるメソッドを特定し、パフォーマンスの問題について調査の対象となる一般的な使用パターン (ガベージ コレクションやロック競合など) も特定します。

DA0001: StringBuilder を使用して連結してください

String.Concat(String, String) の呼び出しがプロファイル データの大きな割合を占めています。StringBuilder クラスを使用して、複数のセグメントからの文字列を連結することを検討してください。

DA0005: 頻繁な GC2 のコレクションです

比較的多くの .NET メモリ オブジェクトが、ジェネレーション 2 のガベージ コレクションで再利用されています。有効期間が短いオブジェクトの多くがジェネレーション 1 のコレクションで収集されない場合、メモリ管理のコストが高くなる可能性があります。

DA0006: 値の型で Equals() をオーバーライドしてください

Equals メソッドまたはパブリックの値型の等値演算子の呼び出しがプロファイル データの大きな割合を占めています。より効率的な方法を実装することを検討してください。

DA0007: 制御フローでの例外の使用を避けてください

.NET Framework 例外ハンドラーの多くの部分がプロファイル データで呼び出されました。他の制御フロー ロジックを使用して、スローされる例外の数を減らすことを検討してください。

DA0010: GetHashCode の負荷が高くなっています

型の GetHashCode メソッドの呼び出しがプロファイル データの大きな割合を占めているか、GetHashCode メソッドがメモリを割り当てています。このメソッドの複雑さを軽減してください。

DA0011: CompareTo の負荷が高くなっています

型の CompareTo メソッドの負荷が高くなっているか、このメソッドがメモリを割り当てています。CompareTo メソッドの複雑さを軽減してください。

DA0012: リフレクションが頻繁に実行されています

System.Reflection メソッド (InvokeMemberGetMember など)、または Type メソッド (InvokeMember など) の呼び出しが、プロファイル データの大きな割合を占めています。可能な場合は、事前バインディングを使用するこれらのメソッドを、依存アセンブリのメソッドに置き換えることを検討してください。

DA0013: String.Split/String.Substring が頻繁に使用されています

String.Split メソッドまたは Substring メソッドの呼び出しがプロファイル データの大きな割合を占めています。文字列内に部分文字列が存在することをテストする場合は、IndexOf または IndexOfAny を使用することを検討してください。

DA0018: 32 ビット アプリケーションがプロセスのマネージ メモリ制限で実行されています

プロファイリングの実行中に収集されたシステム データは、.NET Framework メモリ ヒープが 32 ビット プロセスのマネージ ヒープの到達可能な最大サイズに達したことを示しています。.NET メモリ プロファイル方法を使用してもう一度プロファリングを実行し、アプリケーションによるマネージ リソースの使用を最適化してください。

DA0021: ジェネレーション 1 のガベージ コレクションが高率です

比較的多くの .NET メモリ オブジェクトが、ジェネレーション 1 のガベージ コレクションで再利用されています。有効期間が短いオブジェクトの多くがジェネレーション 0 のコレクションで収集されない場合、メモリ管理のコストが高くなる可能性があります。

DA0022: ジェネレーション 2 のガベージ コレクションが高率です

多数の .NET メモリ オブジェクトが、ジェネレーション 2 のガベージ コレクションで再利用されています。有効期間が短いオブジェクトの多くがジェネレーション 1 のコレクションで収集されない場合、メモリ管理のコストが高くなる可能性があります。この規則は、ロック競合の比率が規則 DA0005 の上限のしきい値を超えた場合に適用されます。

DA0023: 高い GC CPU 時間

プロファイリングの実行中に収集されるシステム パフォーマンス データは、ガベージ コレクションで費やされた時間がアプリケーション全体の処理時間と比較して長いことを示しています。

DA0024: 過剰な GC CPU 時間

プロファイリングの実行中に収集されたシステム パフォーマンス データは、ガベージ コレクションで費やされた時間がアプリケーション全体の処理時間と比較して非常に長いことを示しています。この規則は、ガベージ コレクションで費やされた時間が規則 DA0023 の上限のしきい値を超えた場合に適用されます。

DA0038: 高率のロック競合

プロファイル データを使用して収集したシステム パフォーマンス データは、アプリケーションの実行中に高率のロック競合が発生したことを示しています。競合の原因を見つけるために、同時実行プロファイル方法を使用して、プロファイリングを再度実行することを検討してください。

DA0039: 非常に高率のロック競合

プロファイル データを使用して収集したシステム パフォーマンス データは、アプリケーションの実行中に極端に高率のロック競合が発生したことを示しています。競合の原因を見つけるために、同時実行プロファイル方法を使用して、プロファイリングを再度実行することを検討してください。この規則は、ロック競合の比率が規則 DA0038 の上限のしきい値を超えた場合に適用されます。