我如何比较(Jagged Arrays,Arrays,ArrayList)的性能?

时间:2009-04-26 06:24:59

标签: c# .net performance arrays

有没有性能指标?或者我真的得到这样的结果:

Jagged Arrays:2000 ms
数组:3000毫秒
ArrayList:4000毫秒


如何编写方法来获得性能结果?

7 个答案:

答案 0 :(得分:6)

秒表类对计时微基准测试非常有用:

http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

答案 1 :(得分:2)

Rico Mariani是你的男人。 他为.net制作了最佳性能静电。

所以,要开始怎么做, 阅读他的博客。

How to test Array speed

results of these tests

基本上,你应该知道的是项目的访问权限。不添加它们。

答案 2 :(得分:1)

您可以查看this question,它有一些代码,结果和讨论

答案 3 :(得分:1)

老实说,如果你需要一个分析器告诉你它工作得更好,你可能不需要担心它。因此,只需以三种不同的方式编译代码 - 锯齿状数组,数组列表和数组经典。如果他们中的任何一个一直运行[作业X]明显更快,你就得到了它。如果你无法直接感受到改善,那么你可能只是在浪费你最宝贵的资源:开发时间。

答案 4 :(得分:0)

不同存储结构的性能将根据您在所述结构上执行所需的操作而有所不同。

一般测试可能是
排序:泡泡,合并
搜索:顺序,顺序(未分类数据),二进制

编写用于测试这些函数的函数将涉及用等量的随机数据填充一些数组,然后执行测试。

使用这些类型的算法,生成基于时间的性能指标通常非常简单。

根据语言,您可以计算使用计时器计算所需的时间,或者只是存储/输出您选择的每个迭代点的时间戳。

答案 5 :(得分:0)

您可以在应用程序上设置一些性能计数器,然后测量性能。

这是一个很好的链接。 http://www.codeproject.com/KB/dotnet/perfcounter.aspx

答案 6 :(得分:0)

创建一个包含2个锯齿状数组的类,如下所示

0    0123     
01   012  
012  01  
0123 0  

和两个构造函数。然后创建一个继承锯齿状类的类,它包含一个二维数组和两个方法:

create_matrix method ,它从两个继承的锯齿状数组中创建矩阵,如下所示:

0 0 1 2 3
0 1 0 1 2
0 1 2 0 1
0 1 2 3 0

显示方法,显示两个锯齿状数组和结果矩阵。