大数组算术C#
在C#中存储2D数组的最佳方法是为了在对数组中的元素执行大量算术时优化性能?
我们有大(约1.5G)的阵列,例如我们要通过元素与每个其他元素相乘.性能至关重要这样做的上下文是在c#中.有没有什么聪明的方式存储数组和迭代?我们可以将这些部分写在非托管C中,这样会提高性能吗?需要对c#程序的其余部分访问数组. 目前(在c)数组存储为单个长向量.我们对数组中的每个元素执行计算,并覆盖旧值.对于向量中的每个元素,计算通常是唯一的. 定时实验表明,在C#中存储和迭代数据作为数组比将其存储为2D数组慢.我想知道是否有更好的处理数据的方法.执行的具体算术与问题无关. 解决方法
安娜,
这是一个伟大的页面,讨论传统科学编程语言(fortran,C)和c#之间的性能差异. http://msdn.microsoft.com/en-us/magazine/cc163995.aspx 根据文章C#,当使用矩形数组(2d)可以是一个非常好的表演者.这是一个图形,显示了锯齿状阵列(阵列阵列)和矩形阵列(多维)阵列之间的性能差异. alt text http://i.msdn.microsoft.com/cc163995.fig08.gif 我建议您尝试自己,并使用VS 2008中的性能分析进行比较. 如果使用C#是“足够快”,那么您的应用程序将更容易维护. 祝你好运! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |