2011-06-23 9 views
1

私は-finstrument-functionsの性能テストの結果をいくつか探しています。GCC - 機器の機能オーバーヘッド

私はプロファイリングツールとして使用することを考えています。したがって、オーバーヘッドが高すぎないかどうかを知る必要があります(結果が悪くない)。

+0

コードを高速化したい場合は、[この方法を検討する](http://stackoverflow.com/questions/375913/what-c​​an-i-use-to-profile-c-code-in-linux/378024#378024)関数をインスツルメントするのは一般的ですが、それほど良い方法ではありません。 –

答えて

4

オーバヘッドは、各ユーザー関数呼び出しの計装関数への2回の追加呼び出しです。

単なる3-5 * 2 asm命令です。また、計装機能自体は

__cyg_profile_func_enter 
__cyg_profile_func_exit 

を消費します。しかし、普通の-finstrument-functionsを使用する場合、cyg_profile関数のコードはあなたのものです。

関数がインライン化されていても、__cyg_profile *は引き続き呼び出されます。したがって、対象アプリケーションの関数呼び出し数を見積もり、呼び出しごとにオーバーヘッドの40〜100 cpuティックを掛けます。

oprofileやLinuxカーネルperfなどのプロファイラのサンプリングに興味があるかもしれません。

関連する問題