我不明白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. G ++編譯Cygwin
- 3. Linux g ++編譯
- 4. 編譯器使用gprof的兼容?
- 5. 編譯錯誤G ++
- 6. 在OSX上將默認編譯器從llvm-g ++更改爲g ++
- 7. directxtutorial.com教程不會在g ++中編譯
- 8. 'ptr_fun(isalnum)'不會在g ++中編譯?
- 9. g ++編譯失敗,Cmake不編譯
- 10. 使用g ++編譯器編譯boost.asio
- 11. 用g ++編譯器編譯Multi2Sim
- 12. 在g ++中編譯文件內容以編譯
- 13. 爲什麼main()在g ++編譯器中編譯,而不是在Visual Studio IDE中編譯
- 14. g ++編譯錯誤:缺少';'
- 15. G ++編譯erro for openssl API
- 16. 使用g ++編譯FLTK
- 17. 錯誤與G ++編譯時
- 18. G ++ 4.1.2編譯器錯誤
- 19. G ++編譯器:Segfault處理
- 20. FLTK g ++編譯錯誤
- 21. MonoDevelop的G ++編譯器
- 22. 錯誤編譯C++與G ++
- 23. 編譯錯誤(g ++和make)
- 24. 使用nvcc和g ++編譯
- 25. 「g ++」和「C++」編譯器
- 26. ffmpeg - 編譯問題與g ++
- 27. g ++編譯多個文件
- 28. C++編譯錯誤。 G ++ gnu
- 29. SSE g ++編譯問題
- 30. g ++與python.h,如何編譯
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