2012-09-21 92 views

回答

9

兩者都將生成配置文件數據。但是他們的用法不同。

fprofile-generate將生成帶分析信息的二進制文件,當您使用fprofile-use重新編譯時,可以重新使用該文件向編譯器提供反饋。

例如:

$ gcc -fprofile-generate filename.c 

如果執行由有關命令生成的二進制文件,它會產生一個與文件數據稱爲filename.gcda文件。

當你再次fprofile-use編譯:

$ gcc -fprofile-use filename.c 

這一次,GCC將使用這些數據從filename.gcda進一步優化。

當您執行使用-pg編譯的二進制文件時,它將生成gmon.out,稍後可以使用它來使用gprof命令分析代碼。這更像靜態分析,它將提供有關代碼路徑的信息。