【发布时间】:2010-09-11 18:44:00
【问题描述】:
在 c# 中存储二维数组的最佳方法是在对数组中的元素执行大量算术运算时优化性能?
我们有大型(大约 1.5G)数组,例如,我们希望将它们逐个元素地相乘。性能至关重要。执行此操作的上下文在 c# 中。有什么聪明的方法来存储数组并迭代它们吗?我们可以用非托管 C++ 编写这些部分吗?这真的会提高性能吗?数组需要可供 c# 程序的其余部分访问。
目前(在 c 中)该数组存储为单个长向量。我们对数组中的每个元素执行计算并覆盖旧值。对于向量中的每个元素,计算通常是唯一的。
时序实验表明,在 C# 中将数据作为数组存储和迭代比将数据存储为二维数组要慢。我想知道是否有更好的数据处理方式。执行的具体算术与问题无关。
【问题讨论】:
-
我不确定您所说的计时实验是什么意思。你的意思是 C# 2D 数组比 C 2D 数组慢?
-
c# 2d 数组比 1d c# 数组快