C++和其他高级语言(比如Java,C#)相比,其最诱惑人的地方莫过于其在性能方面的优势。虽然代码的效率和编程人员的能力、阅历等有着很大的关系,但是掌握一些基本的性能优化准则还是非常必要的。下面介绍几种大家都普遍认同的C++性能优化准则。
第一I/O开销是昂贵的,由计算机的硬件处理速度所决定的,现在普通的个人PC机对硬盘,显示器等I/O设备还落后与内存,更远远的落后与CPU的速度。频繁的I/O操作将会大大的降低CPU的使用率,降低程序的执行效率;所以在程序调试完毕以后一定要清除没用的I/O操作。
第二函数调用的系统开销也是相当乐观的,大家都知道,C++的函数调用需要执行传入参数,保存现场,执行被调函数,恢复现场等操作,而这是一个比较复杂的压栈和出栈的过程,需要频繁进行内存的读取和CPU的切换,所以在编码过程中我们对于需要被频繁调用的函数应该采用内联的机制来实现,做好时间和空间的权衡。
第三对象复制的开销也是比较昂贵的,这也是由CPU和内存的速度上的差距所造成的所以在编写函数时应该尽可能的使用引用或指针进行参数传递。
以上是我对C++代码优化的一些浅薄认识,希望能和大家一起进行交流学习。