私はプロファイリングの初心者です。タイミングの制約を満たすようにコードを最適化したいと考えています。私は Visual C++ 08 Express を使用しているため、プロファイラーをダウンロードする必要がありました。私はいくつかの検索を行いましたが、Sleepy に関する適切なチュートリアルが見つかりませんでした。ここで私の質問: 適切に使用するには? プロファイリングの一般的な考え方を把握したので、ボトルネックを見つけるために %exclusive に従って並べ替えました。まず、このリストの一番上にZwWaitForSingleObject、RtlEnterCriticalSection、operator new、RtlLeaveCriticalSection、printfがあります、いくつかのイテレータ...そして、それらが60%のようになった後、最初の関数、子呼び出しの最初の位置が来ます。上記のエラーが発生する理由、その意味、およびこの重要な 60% にアクセスできない場合にコードを最適化するにはどうすればよいか、誰か説明してもらえますか? (「ソースファイル」の場合:不明...)。また、私の関数では、各行に時間がかかると思いますが、そうではありません。たとえば、算術演算や一部の関数にはタイミングがありません (未使用の「if」句にネストされていません)。最後に、超高速で実行できる回線があるにもかかわらず、何千回も呼び出されて実際のボトルネックになっていることを確認するにはどうすればよいでしょうか?
最後に、スリーピーは良いですか?または、私のプラットフォームの無料の代替品はありますか?
大変助かりました!乾杯!
- アップデート - - - - -
プレーンな Sleepy と呼ばれる別のバージョンのプロファイラーを見つけました。一部のスニペットが呼び出された回数と行数を示します (重要なものを指していると思います)。だから私の場合.. KiFastSystemCallRetは50%かかります! 何らかのデータを待っているということですよね?その問題を改善するには、これらの複数の呼び出しの原因を追跡し、最終的にそれを削除/変更する適切なアプローチがありますか?