4

Very Sleepy を使用してプロファイリングを行ったときに、これが最高評価の項目であることを確認して検索したところ、「これはシステム関数です。無視してください」という答えが返ってきたようです。しかし、関数に対する Sleepy のヒントは次のように述べています。

ヒント: KiFastSystemCallRet は、多くの場合、スレッドが他の何かが終了するのを待っていたことを意味します。考えられる原因は、ディスク I/O、イベントの待機、または単に Sleep() の呼び出しである可能性があります。

現在、私のアプリは CPU を完全にスラッシングしているため、少し奇妙なことに、時間の 33% が何かが起こるのを待つことに費やされています。

私は本当にそれを無視しますか?

編集: どうやら、これへの呼び出しの 77% は、モジュール nvd3dnum にある QueryOglResource (?) から来ています。それはnvidia Direct3Dのもの、つまりレンダリングかもしれないと思います。

4

2 に答える 2

2

無視しないでください。それがどのように呼ばれているかを調べてください。コール スタックをコードのどこに到達するかを振り返ると、どこに問題があるかがわかります。実際に多くの時間を費やしているスタック トレースが表示される可能性が最も高くなるように、(ブレークポイントではなく) ランダムに停止することが重要です。

于 2010-04-13T00:09:32.673 に答える
1

その関数は、プロファイラーにとってはほとんど意味がありません。基本的には、システム関数全体の論理的な終点です。それを呼び出す関数は何ですか?WaitForMultipleObjects? 非同期読み取り?

于 2010-04-12T20:25:42.917 に答える