当前位置:  开发笔记 > 编程语言 > 正文

C#中的大型算术算术

如何解决《C#中的大型算术算术》经验,为你挑选了1个好方法。

哪个是在c#中存储2D数组的最佳方法,以便在对数组中的元素执行大量算术时优化性能?

我们有大的(大约1.5G)数组,例如我们想要逐个元素地相乘.表现至关重要.完成此操作的上下文是在c#中.有没有智能的方法来存储数组并迭代它们?我们可以用非托管C++编写这些部分吗?这会真的提高性能吗?数组需要可以访问c#程序的其余部分.

目前(在c中)阵列存储为单个长向量.我们对数组中的每个元素执行计算并覆盖旧值.对于向量中的每个元素,计算通常是唯一的.

时序实验表明,在C#中作为数组存储和迭代数据比将其存储为2D数组要慢.我想知道是否有更好的方法来处理数据.所执行的特定算术与该问题无关.



1> Jason Steven..:

安娜,

这是一个很好的页面,讨论传统科学编程语言(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#"足够快",那么您的应用程序将更容易维护.

祝好运!


该图中显示的结果来自.Net 1.1.锯齿状阵列实际上比.Net 3和4中的多维阵列更快,如下所示:http://www.codeproject.com/KB/cross-platform/BenchmarkCppVsDotNet.aspx
推荐阅读
女女的家_747
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有