在 Ubuntu 上优化 C/C++ 程序性能,可以从编译、系统、算法、工具几个层面来做。下面按实用程度整理一份清单。
gcc -O2 -o app app.c
g++ -O2 -o app app.cpp
常用选项:
-O2:推荐,平衡性能与稳定性-O3:更激进(有时反而变慢)-Ofast:忽略标准严格性,风险高-march=native:针对当前 CPU 优化g++ -O2 -march=native app.cpp
g++ -O2 -flto -o app app.cpp
Ubuntu 默认 gcc 可能较旧:
sudo apt install gcc-12 g++-12
sudo perf record ./app
sudo perf report
常见指标:
g++ -pg app.cpp
./app
gprof ./app gmon.out
valgrind --tool=callgrind ./app
kcachegrind callgrind.out
sudo cpufreq-set -g performance
nice -n -10 ./app
对内存密集型程序有效。
std::vector::reservenew/delete#pragma omp parallel for
std::atomicEigen, BLAS, OpenBLASsimdjsonzstdliburing(io_uring)g++ -O3 -march=native -flto -pthread app.cpp -o app
perf 找热点如果你愿意,可以:
我可以给你更具体的优化建议。