DA0017: ディスクへのアクティブなメモリのページングが高率で発生しています。

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

規則 ID DA0017
分類 メモリとページング
プロファイル方法 すべて
メッセージ ディスクへのアクティブなメモリのページングが高率で発生しています。 アプリケーションがメモリ バインドされている可能性があります。
規則の種類 情報

サンプリング、.NET メモリ、またはリソース競合メソッドを使用してプロファイリングを行うときは、この規則を呼び出すためのサンプルを少なくとも 10 個収集する必要があります。

原因

プロファイリングの実行中に収集されたシステム パフォーマンス データは、ディスクへのアクティブなメモリのページングがプロファイリング実行全体において高率で発生していることを示しています。 ページング率がこのレベルに達すると、通常、アプリケーションのパフォーマンスと応答性に影響します。 アルゴリズムを修正してメモリ割り当てを減らすことを検討してください。 また、アプリケーションのメモリ要件の検討が必要になることがあります。

規則の説明

注意

この情報規則は、アクティブなメモリのページングが相当なレベルに達した場合に適用されます。 ページングが非常に高レベルで発生した場合は、警告規則「DA0014: ディスクへのアクティブなメモリのページングが非常に高率で発生しています」が発生します。

ディスクに対する過剰なページングは、物理メモリの不足が原因で発生する場合があります。 ページング ファイルが存在する物理ディスクの大部分がページング操作によって使用される場合、この物理ディスク上におけるその他のアプリケーションに対するディスク操作の処理速度が遅くなる可能性があります。

通常の場合、ページのディスクへの読み書きは一括して実行されます。 たとえば、1 秒あたりの出力ページ数は 1 秒あたりの書き込みページ数よりも大幅に大きくなることが一般的です。 これは、1 秒あたりの出力ページ数には、システム ファイルのキャッシュで変更されたデータ ページも含まれるためです。 ただし、どのプロセスがどういった理由で高いページング率の直接的な原因になっているのかを特定するのは、必ずしも容易なことではありません。

違反の修正方法

[エラー一覧] ウィンドウに表示されたメッセージをダブルクリックして、[マーク] ビューに移動します。 このビューで、[Memory\Pages\/sec] 列を探します。 ページングの入出力アクティビティの負荷よりも高い特定のプログラム実行フェーズがあるかどうかを確認します。

ロード テストのシナリオで ASP.NET アプリケーション用のプロファイル データを収集している場合は、追加の物理メモリ (または RAM) が構成されているコンピューターでもう一度ロード テストを実行してください。

アルゴリズムを修正し、String.Concat や String.Substring などのメモリ消費量の多い API の使用を控えることにより、メモリの割り当てを減らすことを検討してください。