0

動的プロファイリングに使用できる最速のプロファイラーは何ですか (gprof のように)。プロファイラーはインストルメンテーション プロファイラーである必要があります。または、サンプリング プロファイリングが含まれている場合でも、サンプリング プロファイリングはほぼ 0% のオーバーヘッドで実行できるため、インストルメンテーション プロファイリングのオーバーヘッドを知りたいと思っています。

4

2 に答える 2

1

ハードウェア ベースのサンプリング (CPU PMSR 経由) を使用するプロファイラーは、オーバーヘッドが最小になります (CPU がハードウェア レベルで追跡しているプロファイリング データを読み取るため、詳細については、AMD および Intel アーキテクチャのマニュアルを参照してください。付録の 1 つで詳細に説明されています)。

私が知っているこれらのプロファイラーは、Intel 用のVTune (無料ではない) とAMD 用のCodeAnalyst (無料) だけです。

次は、タイマー ベースのプロファイラーとイベント ベースのプロファイラーです。これらのうち、オーバーヘッドが最も少ないのは、おそらくコードに直接コンパイルされるものです (CodeAnalyst にはイベント ベースの API があり、VTune にもあります)。gprofもこのカテゴリに分類されます (Clang には、まだ維持されている場合は IDK 以外のものもあります...)。VS Pro または Ultimate を使用している場合、その PG コンパイル モードは同様のことを行いますが、専用のプロファイラー スイートと比較したことはありません。

最後は、プロファイリング データを決定するためにコードにプローブを挿入する必要があるものです。前述のものはすべて、VerySleepy などの他のフリーウェア プロファイラーと同様に、これを行うことができます。

于 2013-01-22T11:49:55.830 に答える
0

Intel のvtune アンプは、おそらく最も完成度の高いものです。

于 2013-01-22T10:32:40.237 に答える