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

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

規則 ID DA0010
分類 .NET Framework の使用
プロファイル方法 サンプリング

.NET メモリ
メッセージ GetHashCode 関数の負荷を抑える必要があります。これらの関数でメモリを割り当てることはできません。 可能な場合は、ハッシュ コード関数の複雑さを軽減してください。
メッセージの種類 警告

原因

型の GetHashCode メソッドの呼び出しが、プロファイル データまたはメソッド割り当てメモリの大きな割合を占めています。

規則の説明

ハッシュとは、大きなコレクションから特定の項目をすばやく見つけ出す手法のことです。 ハッシュ テーブルは非常に大きくなる可能性があり、高速のアクセス速度をサポートする必要があるため、ハッシュ テーブルの効率性は重要な要素になります。 この要件は、.NET Framework の GetHashCode メソッドでメモリの割り当てを行うべきではないということを意味しています。 メモリの割り当てを行うと、ガベージ コレクターの読み込みが増加し、割り当て要求の結果ガベージ コレクションが必要になった場合に、メソッドの潜在的な遅延が発生します。

違反の修正方法

このメソッドの複雑さを軽減してください。