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++ -DNDEBUG openMP优化相关推荐

  1. 并行程序设计方法实验(包括openmp、向量化实现pi计算、SPECOMP2012测试、矩阵乘法优化)

    目录 一.实验环境 二.专题一之积分计算圆周率 2.1向量优化 2.2 OpenMP优化 三.专题二之测试SPECOMP2012 3.1初步了解SPECOMP 3.2系统基本配置 3.3实践 3.3. ...

  2. 热对流方程加速的OpenMP实现

    1. 热对流问题的Matlab实现 热对流问题不是本文的重点,对这个问题不了解的话可以参考别的学习资料.OpenMP的基础知识可以参考网上很多资料,也可以参考本博主另外的一片博客<OpenMP基 ...

  3. OpenMP基本概念

    OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的并行程序设计.编译器根 ...

  4. 【OpenCV学习】OpenMP并行化实例

    作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ #include "cv.h" #include "highgui.h" ...

  5. openMP的简单使用

    安装,参考:https://blog.csdn.net/augusdi/article/details/8808226 如图所示,右键工程名->属性->C/C+±>语言,找到Open ...

  6. OPENMP学习笔记(1)——简介,模型,运行

    OPENMP学习笔记(1)--简介,模型,运行 简介: OpenMP的英文全称是Open Multiprocessing,一种应用程序接口(API,即Application Program Inter ...

  7. OpenCV算法加速(1)OpenMP/PPL/TTB基础知识

    一.提高OpenCV的运算速度,有以下几种方法: 1.利用x86转为x64提速,可以提高1倍的速度 2.多线程的openmp或Intel TBB提速,将cpu的利用率从20%多提高到100% 3.利用 ...

  8. 并行编程OpenMP基础及简单示例

    OpenMP基本概念 OpenMP是一种用于共享内存并行系统的多线程程序设计方案,支持的编程语言包括C.C++和Fortran.OpenMP提供了对并行算法的高层抽象描述,特别适合在多核CPU机器上的 ...

  9. OpenMP使用详解

    文章目录 一.OpenMP基本概念 二.OpenMP执行模式 三.编译制导 3.1 常用的功能指令 3.2 相应的OpenMP子句 四.API函数 五.环境变量 六.简单示例 6.1 parallel ...

最新文章

  1. junit、hamcrest、eclemma的安装与使用
  2. JVM---虚拟机栈(动态链接与方法返回地址)
  3. CLOCs:3D目标检测多模态融合之Late-Fusion
  4. jvm性能调优实战 - 42JVM性能优化思路Review
  5. 【Sort List】cpp
  6. 如何理解pytorch 卷积里group 这个参数
  7. 广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片
  8. 数据库-数据库的常用术语
  9. Linux Jump Label(x86)
  10. 小学生计算机学科竞赛类活动,自主招生/综合评价认可哪些科创类赛事?2020届参考...
  11. SpringCloud之高可用的分布式配置中心(Spring Cloud Config)(七)
  12. mysql服务器的字符集
  13. Python爬虫之一:十几行代码下载王者荣耀所有皮肤
  14. 教师信息管理系统——c语言(附N-S图)
  15. English语法_形容词/副词3级 - 倍数表达
  16. mov视频怎么转换成mp4格式?
  17. 泡泡龙游戏c语言程序,七彩泡泡龙小程序-微信七彩泡泡龙小程序小游戏v1.0-游戏宝手游网...
  18. 读取 RV1126 CPU温度 NPU CPU频率
  19. android 获取蓝牙设备id_安卓蓝牙系统中如何获取蓝牙音乐的音频跟踪会话ID
  20. iPad可以用来学计算机吗,我的ipad都用来做什么?学习娱乐两不误

热门文章

  1. memcpy, strcpy, strncpy的区别和用法
  2. 定义一个不能被拷贝的类
  3. linux环境下运行open error,错误:运行OpenCL代码时clGetPlatformIDs -1001(Linux)
  4. wpf listview mysql_Kivy:使用MySQL的Kivy页面的Listview实现
  5. 逻辑回归算法c语言_逻辑回归算法背后的数学
  6. es中修改某个字段值_搜索引擎之laravel中使用elasticsearch(一)
  7. php正则截取富文本编辑器中路径字符串_php使用正则表达式获取字符串中的URL
  8. 9 个实用 shell 脚本,建议收藏!
  9. 能进这个Java组织的都是大神,现在只有三个中国人
  10. 程序员为什么要单身?