2
假設我想剖析系統中許多應用程序中使用的單個庫的使用情況。我確信只有統計資料,而不是一個準確的(但那也會很好)。系統範圍的連續Linux庫分析
我不想做的是重新編譯每個正在運行的程序與分析支持。我希望將分析信息定期或按需轉儲到某個文件。如果統計數據使用應用程序名稱或pid進行細分,那將非常好。
現在有什麼辦法可以實現嗎?
示例用法:使用來自正在運行的系統的數據分析glib庫。
假設我想剖析系統中許多應用程序中使用的單個庫的使用情況。我確信只有統計資料,而不是一個準確的(但那也會很好)。系統範圍的連續Linux庫分析
我不想做的是重新編譯每個正在運行的程序與分析支持。我希望將分析信息定期或按需轉儲到某個文件。如果統計數據使用應用程序名稱或pid進行細分,那將非常好。
現在有什麼辦法可以實現嗎?
示例用法:使用來自正在運行的系統的數據分析glib庫。
看看oprofile。我認爲它確實是你想要的。
OProfile的使用硬件計數器採樣分析代碼,並且可以自定義哪些對抗你想品嚐上(如如果你不想一時間曲線,你可以在浮點指令計數器樣本,請代碼中執行最多FP工作的部分)。對於時間剖面,速率是每秒約2000個樣本,所以開銷非常低。
生成的摘要數據告訴您應用程序,加載模塊和符號(如果您有符號信息),那麼您花費了大部分時間。您也可以選擇單獨分析內核和用戶空間,並且如果需要,可以使用呼叫路徑信息。最新版本的oprofile甚至支持分析JIT代碼,所以它非常全面。
太棒了!我知道oprofile,但從來沒有試圖用這種方式。僅僅根據我需要的庫中的符號進行過濾就可以提供所需的數據。 – viraptor 2009-04-18 21:44:26