2012-04-09 85 views
15

我在Linux下使用Eclipse CDT,任何人都可以推薦一個好的分析器在該環境下請。Linux的Eclipse CDT剖析器

我也是新的C++和多線程編程,任何人都可以還提供有關如何運行多線程應用程序請,例如,如何尋找性能瓶頸剖析一些建議等

謝謝。

回答

12

我不知道這是不是最好的選擇,但它絕對是明顯的一個:gprof。您只需要將編譯開關設置爲正確(在項目屬性 - > c/C++ build - >設置 - >調試中爲該項目啓用gprof(-pg))。 當你用這個選項編譯程序時,你需要運行它(直到正常退出)。這會生成配置文件(gmon.out)。 您可以在eclipse中安裝額外的插件,它可以將gmon.out的內容可視化(轉至幫助 - >安裝 - > Linux工具 - > GProf集成)。只要打開已生成的gmon.out文件,就像其他任何文件一樣,只要安裝了該插件即可。

+3

http://wiki.eclipse.org/Linux_Tools_Project/GProf/User_Guide – 2012-04-12 11:57:40

+1

有一點需要注意GProf使用(也許其他工具一樣),是,如果您使用按Ctrl - 關閉你的應用程序C(就像通常關閉他寫的服務器一樣),那麼gmon.out文件將不會被寫入。 – kroiz 2014-01-12 20:27:08

+0

這裏是http://stackoverflow.com/questions/1030829/gprof-reports-no-time-accumulated相關的問題。有人指出,如果像stdC++這樣的依賴庫中有一個沒有使用-pg格式,那麼就不會收集時序信息。這是真的嗎? – Sergei 2015-05-05 09:50:42

3

正如dbrank0所述,您需要爲該項目設置編譯選項(-pg)。轉到項目屬性 - > c/C++編譯 - >設置 - > C++編譯 - >調試和檢查生成gpof信息。當你編譯程序(test_prof.c)時,你會得到一個exe文件(在我們的例子中是test_prof)。

$ ls 
test_gprof test_gprof.c 

當您運行它時,會在同一目錄中生成一個gmon.out文件。

$ ls 
gmon.out test_gprof test_gprof.c 

gprof的工具與所述可執行文件的名稱和上述生成的「是gmon.out」作爲參數運行。這會生成一個分析文件,其中包含所有所需的分析信息。

$ gprof test_gprof gmon.out > analysis.txt 

將產生一個名爲「analysis.txt」文件,該文件包含了所有的信息profilig並可以很容易地讀出。 進一步的細節看http://www.thegeekstuff.com/2012/08/gprof-tutorial/

+0

嗨Umair, 這裏是http://stackoverflow.com/questions/1030829/gprof-reports-no-time-accumulated相關的問題。有人指出,如果像stdC++這樣的依賴庫中有一個沒有使用-pg格式,那麼就不會收集時序信息。你能確認或反駁嗎? – Sergei 2015-05-05 09:54:28