在Ubuntu系统上跑C++程序,性能优化其实是个系统工程——从代码写法到编译器选项,再到系统层面的调优,每一环都有文章可做。下面这几个方向,是经过实践检验的常见路径,值得仔细琢磨。

代码优化

代码层面的优化是基础,也是最容易下手的环节。

编译器优化选项

编译器本身就有不少“黑科技”,用好它们能省下大量手工优化的工作。

g++ -O2 -o myprogram myprogram.cpp
g++ -O2 -march=native -o myprogram myprogram.cpp
g++ -O2 -flto -o myprogram myprogram.cpp
g++ -O2 -funroll-loops -o myprogram myprogram.cpp

系统配置优化

有时候问题不在代码本身,而是操作系统层面的调度和资源分配。

taskset -c 0,1 ./myprogram
numactl --cpunodebind=0 --membind=0 ./myprogram
sudo sysctl -w vm.vfs_cache_pressure=50

其他优化技巧

还有一些零散但实用的经验。

优化不是一蹴而就的事,常常需要多次尝试和测量。但上述几个方向,覆盖了从代码到系统的全链路,值得对照着逐一排查——效果往往比想象的更明显。

本文转载于:https://www.yisu.com/ask/24380837.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。