温馨提示×

为什么ubuntu c++很慢

小樊
34
2026-10-02 10:54:51
栏目: 编程语言

“Ubuntu 下 C++ 很慢”这个说法其实有点模糊,通常并不是 C++ 语言本身 慢,而是编译、运行环境或开发方式在 Ubuntu 上让你感觉慢。下面按常见原因给你系统梳理一下。


一、最常见原因:编译慢(不是运行慢)

1. 没开优化 / Debug 模式

g++ main.cpp

默认是 无优化 + Debug 信息,编译慢、运行也慢。

✅ 正确做法:

g++ -O2 main.cpp
# 或
g++ -O3 -march=native main.cpp

2. 头文件太多(尤其是 STL / Boost)

Ubuntu 默认使用 libstdc++ + 大量模板

#include <bits/stdc++.h>

虽然方便,但会显著拖慢编译。

✅ 建议:

  • 只 include 需要的头文件
  • 使用 预编译头(PCH)
  • 或使用 ccache
sudo apt install ccache
export CXX="ccache g++"

3. 没有并行编译

make

单线程编译当然慢。

✅ 使用:

make -j$(nproc)

4. 杀毒 / 索引工具干扰

Ubuntu 上的:

  • tracker
  • baloo
  • 某些杀毒软件

会在编译时扫描大量文件,导致极慢。

✅ 检查:

top

看是否有 tracker-miner 占用 CPU。


二、运行慢的常见原因

5. WSL(Windows Subsystem for Linux)

如果你是在 Windows 的 WSL Ubuntu 里跑:

  • 文件系统慢(尤其跨盘)
  • IO 性能差
  • 多线程调度差

✅ 建议:

  • 代码放在 WSL 内部(~/ 下)
  • 不要用 /mnt/c

6. 虚拟机资源不足

如果是:

  • VirtualBox
  • VMware

只分配了 1 核 / 2G 内存
那 C++ 编译和运行时都会很慢。


7. 使用了慢的 STL 容器或习惯

例如:

vector<int> v;
v.push_back(...) // 没 reserve

或频繁 new/delete

✅ 优化:

v.reserve(100000);

三、Ubuntu 本身没“原罪”

事实上:

  • Ubuntu 的 g++ / clang
  • 在 服务器、AI、游戏引擎 中都是主力

C++ 在 Ubuntu 上可以非常快,只是:

默认配置 ≠ 高性能配置


四、快速自检清单 ✅

你可以对照一下:

  • [ ] 是否用了 -O2/-O3
  • [ ] 是否并行编译
  • [ ] 是否在 WSL / 虚拟机
  • [ ] 是否 include 过多
  • [ ] 是否磁盘 IO 慢

如果你愿意,可以告诉我:

  1. 是 编译慢 还是 运行慢
  2. 用的什么环境(物理机 / WSL / 虚拟机)
  3. 编译器版本(g++ --version)

我可以直接帮你定位并给优化方案。

0 踩