有人可以向我解释profile-generate
和pg
选项之间的区别吗?
答案 0 :(得分:11)
两者都将生成配置文件数据。但它们的用法不同。
fprofile-generate
是生成带有性能分析信息的二进制文件,当您使用fprofile-use
再次编译时,可以重复使用它来向编译器提供反馈。
例如:
$ gcc -fprofile-generate filename.c
如果执行about命令生成的二进制文件,它将生成一个名为filename.gcda
的文件,其中包含配置文件数据。
再次使用fprofile-use
进行编译时:
$ gcc -fprofile-use filename.c
这一次,gcc将使用filename.gcda
中的数据进一步优化。
当您执行使用-pg
编译的二进制文件时,它将生成gmon.out
,稍后可以使用gprof
命令分析代码。这更像是静态分析,它将提供有关代码路径的信息。