ID 別のパフォーマンス規則

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

警告 説明
DA0001: StringBuilder を使用して連結してください System.String.Concat の呼び出しがプロファイル データの大きな割合を占めています。 StringBuilder クラスを使用して、複数のセグメントからの文字列を連結することを検討してください。
DA0002: VSPerfCorProf.dll がありません プロファイリング実行中に VSPerfCorProf.dll が見つかりませんでした。 この警告は、VSPerfCLREnv.cmd ツールを使用せずにプロファイラー データ収集用のコマンド ライン ツールを使用して、必要な環境変数を初期化すると発生します。
DA0003: カーネル サンプルが多数存在します アプリケーション用に収集された呼び出し履歴サンプルの多くの部分が、カーネル モードでの実行でした。 別のプロファイル方法を使用してアプリケーションをプロファイルすることを検討してください。
DA0004: プロセッサ使用率が高くなっています プロセッサ (CPU) 使用率の大きな割合を、インストルメンテーション メソッドを使用して収集されたプロファイル データが占めていました。 CPU 主体のアプリケーションをプロファイリングするときは、サンプリング プロファイリング方式の使用を検討してください。
DA0005: 頻繁な GC2 のコレクションです 多数の .NET メモリ オブジェクトが、ジェネレーション 2 のガベージ コレクションで再利用されています。
DA0006: 値の型で Equals() をオーバーライドしてください Equals メソッドまたはパブリックの値型の等値演算子の呼び出しがプロファイル データの大きな割合を占めています。 より効率的な方法を実装することを検討してください。
DA0007: 制御フローでの例外の使用を避けてください .NET Framework 例外ハンドラーの多くの部分がプロファイル データで呼び出されました。 他の制御フロー ロジックを使用して、スローされる例外の数を減らすことを検討してください。
DA0008: 少数のサンプルしか収集されていません プロファイリング実行で少数のサンプルしか収集されませんでした。 収集されるサンプル数を増やすには、実行時間を長くするか、サンプリング速度を上げてください。
DA0009: High % time in JIT アプリケーションの実行時間のうち、かなりの割合が Just-In-Time (JIT) コンパイラに費やされていました。
DA0010: GetHashCode の負荷が高くなっています 型の GetHashCode メソッドの呼び出しが、プロファイル データまたはメソッド割り当てメモリの大きな割合を占めています。
DA0011: CompareTo の負荷が高くなっています 型の CompareTo メソッドの負荷が高くなっているか、このメソッドがメモリを割り当てています。
DA0012: リフレクションが頻繁に実行されています System.Reflection メソッド (InvokeMember や GetMember など) または Type メソッド (MemberInvoke など) の呼び出しが、プロファイル データの大きな割合を占めています。 可能な場合は、事前バインディングを使用するこれらのメソッドを依存アセンブリのメソッドに置き換えることを検討してください。
DA0013: String.Split/String.Substring が頻繁に使用されています System.String.Split メソッドまたは System.String.Substring メソッドの呼び出しがプロファイル データの大きな割合を占めています。 文字列内に部分文字列が存在することをテストする場合は、System.String.IndexOf または System.String.IndexOfAny を使用することを検討してください。
DA0014: ディスクへのアクティブなメモリのページングが非常に高率で発生しています プロファイリングの実行中に収集されたシステム パフォーマンス データは、ディスクへのアクティブなメモリのページングがプロファイリング実行全体において非常に高率で発生していることを示しています。 ページング率がこのレベルに達すると、通常、アプリケーションのパフォーマンスと応答性に影響します。 アルゴリズムを修正してメモリ割り当てを減らすことを検討してください。 また、アプリケーションのメモリ要件を考慮する必要があります。より多くのメモリを備えたコンピューターでプロファイリングを再度実行してください。
DA0017: ディスクへのアクティブなメモリのページングが高率で発生しています。 プロファイリングの実行中に収集されたシステム パフォーマンス データは、ディスクへのアクティブなメモリのページングがプロファイリング実行全体において高率で発生していることを示しています。 ページング率がこのレベルに達すると、通常、アプリケーションのパフォーマンスと応答性に影響します。 アルゴリズムを修正してメモリ割り当てを減らすことを検討してください。 また、アプリケーションのメモリ要件を考慮する必要があります。より多くのメモリを備えたコンピューターでプロファイリングを再度実行してください。
DA0018: 32 ビット アプリケーションがプロセスのマネージ メモリ制限で実行されています プロファイリングの実行中に収集されたシステム データは、.NET Framework メモリ ヒープが 32 ビット プロセスのマネージ ヒープの到達可能な最大サイズに達したことを示しています。 報告される値は、プロファイリング中のプロセスがアクティブな状態にあったときに測定されたヒープの最大値です。 マネージ リソースのアプリケーションによる使用を最適化することを検討してください。
DA0021: ジェネレーション 1 のガベージ コレクションが高率です プロファイリングの実行中に収集されたシステム パフォーマンス データは、ジェネレーション 1 のガベージ コレクションで解放された .NET Framework オブジェクト用のメモリが、ジェネレーション 0 のデータ コレクションと比較して高率であることを示しています。
DA0022: ジェネレーション 2 のガベージ コレクションが高率です プロファイリングの実行中に収集されたシステム パフォーマンス データが、ジェネレーション 2 のガベージ コレクションで解放された .NET Framework オブジェクト用のメモリが、ジェネレーション 0 およびジェネレーション 1 のガベージ コレクションと比較して高率であることを示しています。
DA0023: 高い GC CPU 時間 プロファイリングの実行中に収集されたシステム パフォーマンス データは、ガベージ コレクションで費やされた時間がアプリケーション全体の処理時間と比較して長いことを示しています。
DA0024: 過剰な GC CPU 時間 プロファイリングの実行中に収集されたシステム パフォーマンス データは、ガベージ コレクションで費やされた時間がアプリケーション全体の処理時間と比較して非常に長いことを示しています。
DA0026: 過剰なカーネル CPU 処理時間。 カーネル モードで実行された CPU 時間の割合が、ユーザー モードで費やされた時間数を超えました。 カーネル モードの実行時間が長い原因を判断するために、プロファイリングを再度実行し、システム コール (syscalls) の数をサンプリングすることを検討してください。
DA0029: サポートされていない CLR バージョンです。 プロファイリング ツールでサポートされていない .NET Framework version 1.1 を使用するアプリケーションのプロファイリングを実行しようとしています。
DA0030: データベース プロジェクトの階層の相互作用の測定を収集します。 System.Data メソッドの呼び出しがプロファイル データの大きな割合を占めているため、プロファイリングの実行中に階層の相互作用データが収集されませんでした。 プロファイリングを再度実行し、階層の相互作用データを追加することを検討してください。
DA0038: 高率のロック競合 プロファイル データを使用して収集したシステム パフォーマンス データは、アプリケーションの実行中に高率のロック競合が発生したことを示しています。 競合の原因を見つけるために、同時実行プロファイル方法を使用して、プロファイリングを再度実行することを検討してください。
DA0039: 非常に高率のロック競合 プロファイル データを使用して収集したシステム パフォーマンス データは、アプリケーションの実行中に極端に高率のロック競合が発生したことを示しています。 競合の原因を見つけるために、同時実行プロファイル方法を使用して、プロファイリングを再度実行することを検討してください。
DA0501: プロセスによる平均 CPU 使用量をプロファイリングしています。 このメッセージにより、アプリケーションの命令の実行中にプロセッサがビジー状態になった時間がパーセントで報告されます。 プロファイリング中のプロセスがアクティブな状態にあるすべての測定間隔を通じて取得された値の平均値が、このメッセージによって報告されます。 複数のプロセッサが搭載されたコンピューターの場合、100% を超える値になる可能性があります。
DA0502: プロセスによる最大 CPU 使用量をプロファイリングしています このメッセージにより、アプリケーションの命令の実行中にプロセッサがビジー状態になった最大時間がパーセントで報告されます。 プロファイリング中のプロセスがアクティブな状態にあるすべての測定間隔を通じて取得された値のうち、最も大きな値がこのメッセージによって報告されます。 複数のプロセッサが搭載されたコンピューターの場合、パーセントが 100% を超える可能性があります。
DA0503: プロセスのワーキング セット平均バイト数がプロファイリングされています このメッセージにより、プロセスが現在使用している物理メモリ量 (ワーキング セット) の平均がバイト単位で報告されます。 プロセスのワーキング セットは、物理メモリに現在常駐しているプロセス アドレス空間のページを表します。
DA0504: プロセスのワーキング セット最大バイト数がプロファイリングされています このメッセージにより、プロセスが現在使用している物理メモリの最大容量がバイト単位で報告されます。 プロセスのワーキング セットは、物理メモリに現在常駐しているプロセス アドレス空間のページを表します。 この規則は、プロファイリングがアクティブな状態にあったときの、プロセスのワーキング セットの最大値を報告します。
DA0505: プロセスに割り当てられた平均プライベート バイト数がプロファイリングされています このメッセージにより、プロセスによって割り当てられた現在の仮想メモリ容量がバイト単位で報告されます (プライベート バイト)。 プライベート バイトは、プロセス内部で実行中のスレッドからのみアクセスできるプロセスによって割り当てられた仮想メモリの位置を表します。
DA0506: プロセスに割り当てられた最大プライベート バイト数がプロファイリングされています このメッセージにより、プロセスによって割り当てられた現在の仮想メモリの最大容量がバイト単位で報告されます (プライベート バイト)。 プライベート バイトは、プロセス内部で実行中のスレッドからのみアクセスできるプロセスによって割り当てられた仮想メモリの位置を表します。