c++ - 我想为其中一个类的某些内部结构制作一个包装的访问类型,我有一些性能问题

标签 c++ matrix

我正在编写一个抽象矩阵类(和一些具体的子类)用于非常不同的硬件/体系结构等,我想编写一个行和列类型,为矩阵的行和列提供透明引用.

但是,我想调整性能,所以我希望这个类本质上是一个编译器构造。换句话说,我愿意牺牲一些开发时间来使这些类的开销尽可能小。

我假设所有(小)方法都希望内联?保持结构小?还有其他建议吗?

最佳答案

效率设计黄金法则 1 是真正正确地完全完全理解和欣赏您工作环境的所有细微差别。

包括但不限于:

  • 了解您正在使用的每个编译器构造的成本
  • 了解编译器如何使用内存
  • 在信封或餐巾纸的背面进行适当的设计。如果不合适,你就有麻烦了。
  • 构建小示例并测试/反汇编
  • 重新审视设计。

然后编写一些真实的测试用例并在不同的硬件上进行测试,以确定是否存在性能问题;我已经这样做了几次,除非您使用汇编程序编写,否则性能下降可能会出现在最奇怪的地方。

如果速度太慢,请添加硬件。如果您无法添加硬件优化。

关于c++ - 我想为其中一个类的某些内部结构制作一个包装的访问类型,我有一些性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3047438/

相关文章:

r - 求和或矩阵乘法更快吗?

math - 两个 4x4 矩阵相减 - 这可能吗?

c++ - 传递不同数据类型的问题

c++ - 传递许多函数并将它们的所有结果存储在一个元组中

c++ - MinGW、MinGW-w64 和 MinGW-builds 有什么区别?

algorithm - 我如何找到对角线对称值的索引?

matlab - 如何以矢量化方式平均每第 n 个元素的矩阵?

c++ - OpenCV 函数来计算类似于 MATLAB 产品的数组元素的乘积?

c++ - Visual Studio 贫瘠的荒地中发生的奇怪事件

C++函数转换题