在 Ubuntu 上,使用 GCC 优化程序性能,通常从编译选项、系统环境、代码层面三方面入手。下面按实用程度给你一套清晰方案。
gcc -O2 main.c -o main
常用等级:
-O0:不优化(调试用)-O1:基本优化-O2:推荐(性能 & 稳定)-O3:更激进(可能变大、不一定更快)-Os:优化体积-Og:调试 + 轻量优化✅ 生产环境一般用 -O2 或 -O3
gcc -O2 -march=native -mtune=native main.c -o main
native:自动识别当前 CPU查看 CPU:
lscpu
gcc -O3 -march=native -mfpu=neon -mfloat-abi=hard # ARM
gcc -O3 -march=native -mavx2 # x86
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
✅ 可跨文件优化,性能提升明显
gcc -O2 -ffast-math main.c -o main -lm
⚠ 风险:不保证 IEEE 浮点严格正确
sudo apt install build-essential
sudo apt install gcc g++ ninja-build
sudo apt install gcc-12 g++-12
sudo update-alternatives --config gcc
sudo apt install linux-tools-common
sudo cpupower frequency-set -g performance
set(CMAKE_C_FLAGS "-O3 -march=native -flto")
make -j$(nproc)
gcc -O2 -fprofile-generate main.c -o main
./main # 运行典型负载
gcc -O2 -fprofile-use main.c -o main
sudo apt install perf
perf stat ./main
sudo apt install valgrind
valgrind --tool=cachegrind ./main
gcc -O3 -march=native -mtune=native -flto main.c -o main
如果你能告诉我:
我可以给你更精确的 GCC 参数。