在 Ubuntu 上用 gcc 编译/运行慢,通常不是“gcc 本身慢”,而是编译过程、系统环境或运行方式导致的。下面按常见原因逐条说明,并给出对应解决办法。
-O2 / -O3
优化级别越高,编译越慢,尤其:
✅ 解决:
-O0-O2大型 C++ 项目:
#include <iostream> + STL✅ 解决:
-MMD -MP 做依赖缓存make
默认是单线程。
✅ 解决:
make -j$(nproc)
或
ninja
尤其是:
✅ 解决:
/home 在 NFS 上gcc main.c
./a.out
默认是 -O0,运行很慢。
✅ 解决:
gcc -O2 main.c
-g-fsanitize=address)会显著拖慢运行。
✅ 解决:
Ubuntu 默认:
✅ 可试:
ldd a.out
若路径异常,考虑静态链接或环境变量优化。
✅ 检查:
top
htop
free -h
Ubuntu 上:
✅ 可临时排除编译目录
旧 gcc(如 5/7)在某些 C++ 上更慢。
✅ 可升级:
sudo apt install gcc-12 g++-12
你可以先确认是编译慢还是运行慢:
time gcc -O2 main.c
time ./a.out
如果你愿意,可以把:
发给我,我可以更精准判断。