ANTS Performance Profiler from Red Gateの試用版をダウンロードしました。チームのコードの一部を調査しています。直ちに、ANTSが最大99%のCPU時間を食べると報告している特定のコードセクションがあることに気付きました。パフォーマンスプロファイリングの目的で、WaitHandle.SignalAndWaitの呼び出しを無視できますか?
ANTSや一般的なパフォーマンスプロファイリングにはまったく慣れていません(つまり、私は非常に粗悪で、ぼやけていると確信しているセルフプロファイリングを除いて、double timeToComplete = (endTime - startTime).TotalSeconds
など)。アプリケーションとそれがどのように使用されているかを理解することができます。しかし、私は問題のコードを担当する開発者に電話し、彼の即時の反応は "うん、それはそれを言うことを私には驚かないが、そのコードはSignalAndWait [ANTSのおかげで私が見ることができた] CPUを使用せず、何かを待っているだけです」彼は私に、単にそのコードを無視し、私が見つけることができる何かを探すように勧めました。
私の質問:SignalAndWaitはCPUオーバーヘッドを必要としません(もしそうなら、これはどのように可能ですか)。そして、パフォーマンスプロファイラが99%のCPU時間を費やしていると考えるのは妥当でしょうか?特に興味があるのは、それが99%であれば、アプリケーションが頻繁にアイドルであることを示唆しているからです。しかし、そのパフォーマンスは最近遅れている。
私が言ったように、私は実際にはこのツールについては初心者であり、WaitHandleクラスについては何も知らない。だから私はここで何が起こっているのか理解するのに役立つ情報は感謝します。