Gcc 配置文件生成vs PG

Gcc 配置文件生成vs PG,gcc,compiler-construction,profiling,gprof,Gcc,Compiler Construction,Profiling,Gprof,有人能给我解释一下profile generate和pg选项之间的区别吗?两者都会生成profile数据。但它们的用法不同 fprofile-generate是生成包含分析信息的二进制文件,当您使用fprofile-use再次编译时,可以重复使用这些信息向编译器提供反馈 例如: $ gcc -fprofile-generate filename.c 如果执行about命令生成的二进制文件,它将生成一个名为filename.gcda的文件,其中包含配置文件数据 使用fprofile编译时,请再次

有人能给我解释一下
profile generate
pg
选项之间的区别吗?

两者都会生成profile数据。但它们的用法不同

fprofile-generate
是生成包含分析信息的二进制文件,当您使用
fprofile-use
再次编译时,可以重复使用这些信息向编译器提供反馈

例如:

$ gcc -fprofile-generate filename.c
如果执行about命令生成的二进制文件,它将生成一个名为
filename.gcda
的文件,其中包含配置文件数据

使用
fprofile编译时,请再次使用

$ gcc -fprofile-use filename.c
这次,gcc将使用
filename.gcda
中的数据进一步优化

当您执行用
-pg
编译的二进制文件时,它将生成
gmon.out
,以后可以使用该命令来分析代码。这更像是静态分析,它将提供有关代码路径的信息