小编The*_*loe的帖子

为什么C数组比std :: array快得多?

我们目前正在用C++编写一些性能关键代码,它们可以在许多大型矩阵和向量上运行.关于我们的研究,std::array标准C阵列之间应该没有重大的性能差异(参见这个问题或者这个).但是,在测试过程中,我们通过使用C阵列获得了巨大的性能提升std::array.这是我们的演示代码:

#include <iostream>
#include <array>
#include <sys/time.h>

#define ROWS 784
#define COLS 100
#define RUNS 50

using std::array;

void DotPComplex(array<double, ROWS> &result, array<double, ROWS> &vec1, array<double, ROWS> &vec2){
  for(int i = 0; i < ROWS; i++){
    result[i] = vec1[i] * vec2[i];
  }
}

void DotPSimple(double result[ROWS], double vec1[ROWS], double vec2[ROWS]){
  for(int i = 0; i < ROWS; i++){
    result[i] = vec1[i] * vec2[i];
  }
}

void MatMultComplex(array<double, ROWS> &result, array<array<double, COLS>, ROWS> …
Run Code Online (Sandbox Code Playgroud)

c++ arrays performance c++11 stdarray

16
推荐指数
2
解决办法
3045
查看次数

标签 统计

arrays ×1

c++ ×1

c++11 ×1

performance ×1

stdarray ×1