我不明白gprof的文檔,關於如何編譯用gprof進行分析的程序。在g ++中,除了-pg
選項之外,是否需要使用-g
選項(調試信息)進行編譯?在每種情況下,我都會得到不同的結果,我希望看到應用程序中的瓶頸處於釋放模式,而不是調試模式,編譯器忽略了許多優化(例如內聯)在g ++中編譯爲gprof
7
A
回答
5
documentation顯示你也可以做,注意你需要-g爲line by line profiling。所以如果你想在釋放條件下進行配置文件,並且可以不接受逐行操作,那麼你應該可以在不使用-g的情況下進行編譯。
+0
我只對函數調用感興趣,而不是逐行分析。如果沒有-g選項,許多正在調用的函數都不顯示。我不認爲這是由內聯引起的,因爲許多這些方法都是大的(50多行代碼)。 – myahya 2010-05-03 20:16:18
+1
@myahya,我認爲它可能是內聯。默認情況下,GCC可以長達400個內部GCC指令的內聯函數(我知道它們不直接映射到代碼行);請參閱http://bazaar.launchpad.net/~vcs-imports/gcc/trunk/annotate/99780/gcc/params.def#L58。另外,你正在使用哪些編譯標誌? – 2010-05-03 21:58:11
相關問題
- 1. 爲什麼「case :: LABEL:」在g ++中編譯?
- 2. 編譯器使用gprof的兼容?
- 3. 'ptr_fun(isalnum)'不會在g ++中編譯?
- 4. g ++編譯失敗,Cmake不編譯
- 5. 用g ++編譯器編譯Multi2Sim
- 6. 使用g ++編譯器編譯boost.asio
- 7. 在g ++中編譯文件內容以編譯
- 8. 爲什麼main()在g ++編譯器中編譯,而不是在Visual Studio IDE中編譯
- 9. MonoDevelop的G ++編譯器
- 10. 編譯錯誤(g ++和make)
- 11. 使用g ++編譯FLTK
- 12. g ++編譯錯誤:缺少';'
- 13. C++編譯器g ++ 11
- 14. ffmpeg - 編譯問題與g ++
- 15. G ++ 4.1.2編譯器錯誤
- 16. 錯誤編譯C++與G ++
- 17. 使用nvcc和g ++編譯
- 18. 用g ++編譯GLFW代碼
- 19. strncpy_s使用G ++編譯器
- 20. 用g ++編譯C++ 11
- 21. 「g ++」和「C++」編譯器
- 22. g ++與python.h,如何編譯
- 23. G ++編譯Visual Studio代碼
- 24. 爲什麼這個代碼不能在g ++中編譯
- 25. 在配置爲g ++和gcc的netbeans中編譯-fopenmp
- 26. 在g ++上編譯時出錯
- 27. g ++編譯器中包含的g ++功能函數
- 28. gdb:使用-g編譯的二進制文件與使用-g編譯的二進制編譯的代碼
- 29. G ++如何在Linux服務器上爲FreeBSD編譯
- 30. 使用G ++編譯器編譯GTK +應用程序
http://stackoverflow.com/questions/1777556/alternatives-to-gprof/1779343#1779343 – 2010-05-04 11:31:46
'-g'並不意味着優化已關閉。 「-O」控制着最佳化。例如,您可以用'-g'和'-O2'進行編譯。 – 2014-10-08 00:59:04