配置文件生成vs PG

Pep*_*lac 10 compiler-construction gcc profiling gprof

任何人都可以向我解释profile-generatepg选项之间的区别吗?

P.P*_*.P. 12

两者都将生成配置文件数据.但它们的用法不同.

fprofile-generate是生成带有分析信息的二进制文件,您可以重新使用它来在再次编译时向编译器提供反馈fprofile-use.

例如:

$ gcc -fprofile-generate filename.c
Run Code Online (Sandbox Code Playgroud)

如果执行about命令生成的二进制文件,它将生成一个filename.gcda带有配置文件数据的文件.

fprofile-use再次编译时:

$ gcc -fprofile-use filename.c
Run Code Online (Sandbox Code Playgroud)

这次,gcc将使用该数据filename.gcda进一步优化.

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