2011-11-13 16 views
1

我有幾個編譯成動態庫的大代碼庫。我知道其中一些有一些非常昂貴的動態全局動態初始化器。 (也就是說,構造這些類/結構的全局實例非常昂貴。)查找庫中的所有動態初始化

我想要一種方法來查看代碼中這些動態初始化器的內容/位置列表,以便我可以看到它們是否很昂貴並需要重構。我想避免在很多程序集中進行挖掘,因爲其中一些庫很大,可能包含數百個動態初始化程序(其中很多小型且相當便宜,比如字符串構造)。

有沒有可以幫助我的工具? (我的工具鏈是紅帽Linux/GCC/cmake的。)

回答

2

如何下的valgrind的callgrind工具運行你的代碼,這將簡介它的執行(當你說貴,你在CPU方面的意思我假設,而不是I/O)。編寫一個小測試程序,除了加載你所關心的許多事情之外什麼都不做,然後分析該配置文件(例如,使用callgrind輸出文件上的圖形工具kcachegrind)。