无法在 gcc 中执行基于配置文件的优化 (PBO)
Posted
技术标签:
【中文标题】无法在 gcc 中执行基于配置文件的优化 (PBO)【英文标题】:Unable to perform Profile based optimization(PBO) in gcc 【发布时间】:2014-03-20 14:39:12 【问题描述】:我无法在 gcc 中使用 PBO 选项 (-fprofile-generate & -fprofile-use)
优化我的代码。
我首先编译我的代码,如下所示:
gcc -fprofile-generate test.c -o test
生成配置文件数据(.gcda 文件)后,我正在重新编译我的代码,如下所示:
gcc -fprofile-use test.c -o test
但我看不出优化代码和未优化代码之间的汇编代码有什么区别。两者看起来都一样。
我是否还应该使用优化标志(例如-O1
、-O2
)和-fprofile-generate/-fprofile-use
来生成优化代码。
【问题讨论】:
【参考方案1】:我不确定,但如果我没记错的话,PBO 必须在链接处手动指定:
gcc -O3 -fprofile-generate -c -MMD -MP -MF test.d -MT test.d -o test.o src/test.c
gcc -O3 -fprofile-generate -o test test.o
然后:
gcc -O3 -fprofile-use -c -MMD -MP -MF test.d -MT test.d -o test.o src/test.c
gcc -O3 -fprofile-use -o test test.o
【讨论】:
以上是关于无法在 gcc 中执行基于配置文件的优化 (PBO)的主要内容,如果未能解决你的问题,请参考以下文章
在gnc gcc编译器的已配置搜索路径中找不到文件可执行文件
B站视频教程笔记基于VSCode和CMake实现C/C++开发 | Linux篇(gcc/g++)(安装配置使用详细教程)(VSCode教程)(CMake教程)(精!)