数据优化学习 1

本文通过实验对比了不同类型的集合在.NET中的性能表现,包括ArrayList、Hashtable及String数组等,并提供了针对每种集合的最佳实践建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天看了 codeproject 上的一片文章(http://www.codeproject.com/useritems/C__Code_profiling.asp),知道了自己进行控件测试最原始的方法。

按照上面的方法对几个常用的类进行了分析,分析数据如下:

ArrayList
12345678910平均值
ForMethod: 2020102021302020202020 ms
ForCountMethod: 2020202010302020102019 ms
ForEachMethod: 5040404040404040404041 ms
IEnumeratorMethod: 4040403030504041404039 ms
Hashtalbe
12345678910
ForMethod: 251491240421291401270290250251316 ms
ForCountMethod: 160160171160170160160150160160161 ms
IDEnumeratorMethod5050505050605050505051 ms
String[]
ForMethod: 451440440440441491441441440440447 ms
ForCountMethod: 471441450451450521450470451441460 ms
IEnumeratorMethod: 620581581581591731601591601591607 ms
ForEachMethod: 461451441450451521451441440450456 ms

[说明:测试数据为 1000000。时间单位: ms] 

总结:

1、对于 ArrayList  最好采用如下循环读取数据比较快:

int total = arrayList.Count;

for(int iCount = 0;iCount < total; iCount ++)

{

    // many of codes...

}

2、对于 Hashtable 循环读取数据,推荐方法:

IDictionaryEnumerator ide = ht.GetEnumerator();

while (ht.MoveNext())

{

// many of codes...

}

3、对于 String[] 之类的引用类型循环读取数据,推荐:

foreach(int str in arrayStr)

{

// many of codes...

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值