《C++性能优化指南》

优化是一门实验科学,所以需要调试和分析。

优化性能的领域:小型嵌入式设备和移动设备、大型服务器、分布式计算等计算资源有限的场合。

C++ 代码优化策略总结:

1. 用好的编译器并与好编译器

(1)使用支持C++11的编译器,-std-c++11,
(2)打开编译器的优化选项,-O2,但是代码调试过程会变的困难
(3)打开函数内联优化选项,inline
(4)编译器编译出的程序性能:INTEL icc > GNU gcc

2. 使用更好的算法

大部分优化手段可将程序性能提升30%-100%或3倍,但使用更高效的算法,可以实现性能的指数级增长。
(1)使用 查找 和 排序 的最优算法
(2)具体领域的最优算法
(3)技巧:预计算(将计算从运行时移动到链接、编译或是设计时)、延迟计算(将计算推迟到真正需要使用该计算结果时,才进行计算)、缓存(节省和复用,减少数据无用的换入换出,也就是减少了L1/L2/L3的带宽)

3. 使用更好的库

标准C++模板库和运行时库必须是可维护的、全面的、非常健壮的,所以性能会被折中。
(1)标准C++模板库的优化方法
(2)Boost Project
(3)Google Code
(4)开发自己的库,减少安全性和健壮性的约束,换来更快的性能

4. 减少内存分配和复制

绝大多数C++语言特性的性能开销最多只是几个指令,但每次调用内存管理器的开销却是数千个指令。
(1)字符串的优化
(2)减少动态内存分配的性能开销
(3)减少缓存复制函数:构造函数、赋值运算符、输入输出

5. 移除计算

除了内存分配和函数调用之外,单条C++语句的性能开销通常都很小。
(1)确定程序中哪部分被频繁执行 hostspot,然后尝试减少计算数量

6. 使用更好的数据结构

(1)清楚C++标准库中数据结构的性能、行为和权衡

7. 提高并发性

(1)并发执行:同步并发线程让它们可以共享数据

8. 优化内存管理

(1)管理动态内存分配

猜你喜欢

转载自www.cnblogs.com/qccz123456/p/11537280.html