在 Debian 上感觉 gcc 编译/运行慢,可以从「编译慢」和「运行慢」两个角度来排查和优化。下面按常见原因 + 对应解决办法给你一份实战清单。
time gcc main.c -o main
time ./main
gcc 阶段慢 → 编译优化./main 慢 → 运行/代码/环境优化-O0:调试快,但运行慢-O2:推荐平衡-O3:可能更慢(尤其小函数)✅ 推荐:
gcc -O2 -march=native main.c
-march=native默认生成通用指令,浪费 CPU 性能。
gcc -O2 -march=native -mtune=native main.c
大型 C/C++ 项目常见。
✅ 使用预编译头(C++):
g++ -x c++-header stdafx.h
或改用:
ccachesudo apt install ccache
export CC="ccache gcc"
如果是 Makefile:
❌ 慢:
make
✅ 快:
make -j$(nproc)
CMake:
cmake --build build -j$(nproc)
编译大量临时文件。
✅ 使用 tmpfs:
mkdir ~/tmp
export TMPDIR=~/tmp
mount -t tmpfs tmpfs ~/tmp
Debian stable 的 gcc 可能偏旧。
gcc --version
可装新版本:
sudo apt install gcc-12 g++-12
gcc -O2 -march=native main.c
gcc -Wall -Wextra -O2 main.c
sudo apt install linux-perf
perf record ./main
perf report
或:
gprof
valgrind --tool=callgrind
strace -c ./main
sudo apt install cpufrequtils
sudo cpufreq-set -g performance
free -h
swapon --show
sudo apt install ccache
export CC="ccache gcc"
gcc -O2 -march=native main.c -o main
make -j$(nproc)
如果你愿意,可以把:
发我,我可以给你更针对性的优化方案。