DA0026: 過剰なカーネル CPU 処理時間。
規則 ID |
TODO |
分類 |
プロファイリング ツールの使用 |
プロファイル方法 |
サンプリング |
メッセージ |
比較的高いカーネル モード CPU 時間が計測されました。SysCall サンプリングを有効にした原因の調査を検討してください。 |
規則の種類 |
情報 |
サンプリング、.NET メモリ、またはリソース競合メソッドを使用してプロファイリングを行うときは、この規則を呼び出すためのサンプルを少なくとも 10 個収集する必要があります。
原因
カーネル モードで実行された CPU 時間の割合が、ユーザー モードで費やされた時間数を超えました。カーネル モードの実行時間が長い原因を判断するために、プロファイリングを再度実行し、システム コール (syscalls) の数をサンプリングすることを検討してください。
規則の説明
カーネル モードの実行中においてアプリケーションによる処理時間が比較的長くなっている場合は、さらに調査が必要になることがあります。ユーザー モードのアプリケーションによる I/O 操作、スレッドまたはプロセスの同期プリミティブの待機、またはシステム コールは、カーネル モードに遷移してから実行されます。システム コールに基づいてサンプルの呼び出し履歴を収集するオプションを選択する際に、アプリケーションが実行するシステム コールの種類とそのシステム コールを処理する関数を調べることができます。
違反の修正方法
アプリケーションが実行するシステム コールを調べるには、プロファイリングを再度実行し、システム コールに基づいてサンプルを収集するオプションを選択します。IDE 内でプロファイリング ツールを実行する場合の詳細については、「方法 : サンプリング イベントを選択する」を参照してください。コマンド ラインからプロファイリング ツールを実行する場合の詳細については、コマンド ライン プロファイリング ツール リファレンスのトピック「VSPerfCmd」の「Sampling Interval Options」セクションを参照してください。