DA0003: カーネル サンプルが多数存在します

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

規則 ID DA0003
分類 プロファイリング ツールの使用
プロファイル方法 サンプリング
メッセージ カーネル モードのサンプルの割合が高くなっています。 これは、大量の I\/O 処理または高率のコンテキスト スイッチを示している可能性があります。 インストルメンテーション モードでアプリケーションのプロファイルを再度実行することを検討してください。
規則の種類 情報

原因

アプリケーション用に収集された呼び出し履歴サンプルの多くの部分が、カーネル モードで実行されていました。 別のプロファイル方法を使用してアプリケーションをプロファイルすることを検討してください。

規則の説明

Windows では、コードをカーネル モードとユーザー モードのいずれかで実行できます (カーネル モードは、特権モードとも呼ばれます)。デバイス ドライバーなどの下位レベルのシステム コードのみをカーネル モードで実行します。 ユーザー モードのアプリケーションによる I\/O 操作、スレッドまたはプロセスの同期プリミティブの待機、またはシステム コールは、カーネル モードに遷移してから実行されます。

サンプリングは、ほとんどの時間ユーザー モードで動作するアプリケーションのプロファイリングを行うときに、最も効果があります。 アプリケーションがカーネル モードで実行されていたときに収集されたサンプルの数は、I\/O 操作が頻繁に行われたこと、またはコンテキスト切り替えが発生していることを示している可能性があります。 これらのどちらの操作も、サンプリング メソッドを使用して調査することはできません。 収集されたカーネル モードのサンプルが多すぎる場合、サンプリング データには、統計的に有意な数のユーザー モード サンプルが含まれていない可能性があります。

違反の修正方法

次のオプションのいずれかを使用して、もう一度アプリケーションのプロファイリング実行を検討します。

  • インストルメンテーション メソッドを使用してプロファイリングを行う。

  • サンプリング レートを上げて、ユーザー モードで多くのサンプルを収集する。