c++ -DNDEBUG openMP优化
【摘要】 1,C++里面STL自带的vector存取效率不高,在可能的情况下用指针数组代替会大幅提高性能。 2,C++中对象的传递,尽可能使用引用,避免无意义的对象拷贝过程。
3,编译的时候加上 -O3, -DNDEBUG 这两个参数优化选项,可以提高编译出来的程序运行速度。
4,针对多核心的处理器,可以加上openMP,进行多线程处理。尤其对于循环的加速效果很明显!
例如...
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++程序,总结出来的体会。以后再有什么发现,再进行更新!
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++程序,总结出来的体会。以后再有什么发现,再进行更新!
文章来源: blog.csdn.net,作者:网奇,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/jacke121/article/details/56045242
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)