这件事情似乎很无聊,但是没人做,我来做下苦力吧。
以下是一些简单的测试。单位以ms计算。注意里面用到循环的数量有些事1W,有些是100W。
这些记录可以作为编程过程中的一些参考。
测试平台:
奔腾1.6G 双核CPU
1G内存
vs2008 调试环境测试。
| 一、ArrayList (100W,1W) Stopwatch timer = new Stopwatch(); timer.Start(); System.Collections.ArrayList al = new System.Collections.ArrayList(); for (int i = 0; i < 1000000; i++) { al.Add(i); } timer.Stop(); Console.Write(timer.ElapsedMilliseconds.ToString() + "\t"); Stopwatch timer1 = new Stopwatch(); timer1.Start(); for (int i = 0; i < 10000; i++) { al.Contains(i); } timer1.Stop(); Console.WriteLine(timer1.ElapsedMilliseconds.ToString()); 98 775 160 891 107 773 193 769 |
| 二、Hashtable (100W,1W) Stopwatch timer = new Stopwatch(); timer.Start(); System.Collections.Hashtable ht = new System.Collections.Hashtable(); for (int i = 0; i < 1000000; i++) { ht.Add(i, i); } timer.Stop(); Console.Write(timer.ElapsedMilliseconds.ToString() + "\t"); Stopwatch timer1 = new Stopwatch(); timer1.Start(); for (int i = 0; i < 10000; i++) { ht.ContainsKey(i); } timer1.Stop(); Console.WriteLine(timer1.ElapsedMilliseconds.ToString()); } 375 0 673 0 540 0 495 0 把timer1提高到100万(Hashtable (100W,100W)) 389 139 616 277 516 140 610 277 |

