在 Ubuntu 上用 C++ 写程序“运行缓慢”,通常不是语言本身的问题,而是环境、编译方式或代码实现导致的。下面按常见原因给你系统梳理一下,并给出排查与优化建议。
很多人直接:
g++ main.cpp
默认是 -O0(无优化),速度会非常慢。
✅ 正确做法:
g++ -O2 main.cpp -o app
# 或
g++ -O3 -march=native main.cpp -o app
-O3 和 -march=native 能显著提升性能。
如果你是:
g++ -g main.cpp
只用于调试,不要用来测性能。
✅ 建议:
Ubuntu 默认可能处于节能模式:
cpufreq-info
✅ 切换性能模式:
sudo cpufreq-set -g performance
cin >> x;
cout << y;
在大数据量时非常慢。
✅ 加速:
ios::sync_with_stdio(false);
cin.tie(nullptr);
或直接使用:
scanf / printf
vector<int> v;
for (...) v.push_back(x); // 没 reserve
✅ 优化:
vector<int> v;
v.reserve(n);
map → 红黑树(慢)unordered_map → 哈希(也不一定快)✅ 替代:
vectorarrayfor (...) compute();
✅ 使用:
#include <thread>
或 OpenMP:
g++ -fopenmp main.cpp
多线程写相邻变量会导致严重变慢。
✅ 放到本地 ext4 SSD
time ./app
sudo perf record ./app
sudo perf report
#include <chrono>
auto t = chrono::high_resolution_clock::now();
-O2 / -O3cin/coutnew/delete如果你愿意,可以把:
发出来,我可以直接帮你定位瓶颈。