コードの実行中に、実行されたさまざまなマシン命令と、それぞれに必要なクロック サイクルを特定して分析したいと考えています。
これを簡単に行う方法はありますか?動的バイナリ変換は方法かもしれませんが、より簡単なメカニズムを探しています。
前もって感謝します
コードの実行中に、実行されたさまざまなマシン命令と、それぞれに必要なクロック サイクルを特定して分析したいと考えています。
これを簡単に行う方法はありますか?動的バイナリ変換は方法かもしれませんが、より簡単なメカニズムを探しています。
前もって感謝します
プログラミングを行っている場合は、Intel VTune (http://en.wikipedia.org/wiki/VTune) や oprof などのプロファイリング ツールなどのパフォーマンス分析ツールの使用を検討してください。
ほとんどのプログラマがサイクル アキュレート シミュレータにアクセスすることはあまり一般的ではありませんが、組み込み分野では非常に一般的です。
動的バイナリ変換は、個々の命令の粒度でプログラムを測定するための良い方法ではありません。http://www.pintool.org/のような DBT ツールを使用すると、コードを挿入してタイマーを読み取ることができます。個々の命令の周りでこれを行うと、遅すぎて、インストルメンテーションによってオーバーヘッドが大きくなりすぎます。ただし、関数の粒度でこれを行うことは問題ありません。基本的なブロックの粒度、つまりすべてのブランチ、ボーダーライン。
結論: 最初に VTune のようなプロファイリング ツールを試してください。次に、サイクルに正確なシミュレーターを探しに行きます。