1,C++里面STL自带的vector存取效率不高,在可能的情况下用指针数组代替会大幅提高性能。 2,C++中对象的传递,尽可能使用引用,避免无意义的对象拷贝过程。
3,编译的时候加上 -O3, -DNDEBUG 这两个参数优化选项,可以提高编译出来的程序运行速度。
4,针对多核心的处理器,可以加上openMP,进行多线程处理。尤其对于循环的加速效果很明显!
例如下面这个程序:
#include <iostream>
#include <omp.h>
int main() {
int sum = 0;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
#pragma omp parallel for
for (int i=0;i<10;i++){
sum = sum + a[i];
}
std::cout<<'sum: '<<sum<<std::endl;
return 0;
}
编译的时候加上 -openmp选项激活即可。 以上就是这几天写C++程序,总结出来的体会。以后再有什么发现,再进行更新!
本文介绍了几种提升C++程序性能的方法:使用指针数组代替STL vector以提高存取效率;利用引用传递对象减少拷贝开销;通过编译器优化选项-O3和-DNDEBUG加快程序运行速度;采用OpenMP实现多线程处理,特别是循环任务。
3050

被折叠的 条评论
为什么被折叠?



