在 Ubuntu 上用 GCC 优化程序性能,通常可以从编译选项、链接选项、CPU 特性、代码层面、系统工具几个方向入手。下面按“实用程度”给你一个清晰清单。
gcc -O2 main.c -o main
-O2:推荐默认级别,性能/体积平衡好gcc -O3 main.c -o main
gcc -Os main.c -o main
gcc -O2 -march=native -mtune=native main.c -o main
gcc -O2 -march=skylake -mtune=skylake main.c -o main
查看 CPU 架构:
gcc -march=native -Q --help=target
gcc -O2 -flto -c a.c
gcc -O2 -flto -c b.c
gcc -O2 -flto a.o b.o -o app
或一步:
gcc -O2 -flto main.c -o main
✅ 跨文件内联、死代码消除
✅ 对 C/C++ 项目提升明显
gcc -O2 -march=native \
-funroll-loops \
-fomit-frame-pointer \
-ffast-math \
main.c -o main
说明:
-funroll-loops:循环展开-fomit-frame-pointer:减少栈操作(调试稍难)-ffast-math:浮点提速(⚠ 不保证 IEEE 精度)sudo perf record ./main
sudo perf report
gcc -pg main.c -o main
./main
gprof main gmon.out
gcc -O2 -fopenmp main.c -o main
gcc -O2 -pthread main.c -o main
gcc -O2 -g main.c -o main
✅ 可调试 + 高性能
❌ 不要:
-O3-ffast-math-march=native✅ 推荐组合(通用):
gcc -O2 -march=native -mtune=native -flto main.c -o main
如果你愿意,可以告诉我:
我可以给你一套更精准的 GCC 优化参数。