私はこれをたくさんしました。IDE または ICE を使用している場合は、手作業が必要ですが、確実に機能する手法があります。
警告: 現代のプログラマーはこれを嫌っています。彼らはツールが大好きです。しかし、それは本当に機能し、常に優れたツールを持っているとは限りません。
あなたの場合、コードはタイマーで実行され、高速でなければならない DSP やビデオのようなものだと思います。タイマー ティックごとに実行するのがサブルーチン A だとします。サブルーチン A を単純なループ (たとえば 1000 回) で実行するテスト コードを記述します。これは、少なくとも数秒間待機させるのに十分な長さです。
実行中に一時停止キーでランダムに停止し、コール スタック (プログラム カウンターだけでなく) をサンプリングして記録します。(それが手動部分です。)これを数回、たとえば 10 回行います。1 回では不十分です。
次に、スタック サンプル間の共通点を探します。少なくとも 2 つのサンプルに表示される命令または呼び出し命令を探します。これらは多数ありますが、そのうちのいくつかは最適化できるコードになります。
そうすることで、素晴らしいスピードアップが保証されます。1000回の反復では時間がかかりません。
多くのサンプルが必要ない理由は、小さなものを探していないからです。たとえば、10 サンプル中 5 サンプルで特定の呼び出し命令が見られる場合、それは合計実行時間の約 50% を占めています。本当に知りたい場合は、より多くのサンプルがパーセンテージをより正確に教えてくれます。あなたが私のようなら、あなたが知りたいのはそれがどこにあるかだけなので、それを修正して次のものに進むことができます.
最適化するものが見つからなくなるまでこれを行い、最高速度またはそれに近い速度になります。