2011-11-13 7 views
1

ダイナミックライブラリにコンパイルするいくつかの大きなコードベースがあります。私はいくつかの非常に高価なダイナミックなグローバルダイナミックイニシャライザを持っていることを知っています。 (つまり、非常に高価なクラス/構造体のグローバルインスタンスです。)ライブラリ内のすべての動的初期化の検索

これらの動的イニシャライザがコード内に何で/どこにあるのかのリストを表示して、高価であるかどうかを確認したいのですがリファクタリングする必要があります。私はこれらのライブラリのいくつかがかなり大きく、恐らく何百もの動的イニシャライザを含んでいるので、アセンブリの多くを掘り起こすことは避けたいと思います(それらの多くは文字列構造のように小さくてかなり安いものです)。

私にこれを助けるツールはありますか?

答えて

2

valgrindのcallgrindツールの下でコードを実行すると、その実行をプロファイリングすることができます(私は高価なのはCPUの意味で、I/O)。あなたが心配している多くのものをロードし、プロファイルを分析する以外に何もしない小さなテストプログラムを書く(例えば、callgrind出力ファイルのグラフィカルツールkcachegrindを使って)。

関連する問題