【发布时间】:2012-11-26 08:54:48
【问题描述】:
我用 C++ 编写了一个 MPC 控制器,其中包括一个 Matrix 类,我将数据存储在一个数组中,并使用了 C 内存函数(memcpy、memset 等)。今天我用c ++向量替换了数组,并使用了复制来移动内存等......我遇到了一个问题,通过用向量替换数组,使用向量控制信号的计算时间几乎翻了一番。
如果我使用 alloc、memcpy、memset、free ins c++ 代码有什么缺点吗?如果有的话,那些是什么?
【问题讨论】:
-
当您注意到性能下降时,是在调试版本还是发布版本中?你的优化设置是什么?您是否偶然通过值而不是通过引用(在 C 样式代码使用指针的地方)传递新向量,从而产生了不必要的副本?