代码改变世界

出乎意料

2006-08-27 15:55  Colin Han  阅读(7368)  评论(0编辑  收藏  举报
因为工作需要,写了个简单的测试程序测试了一下List<T>, LinkedList<T>, Dictionary<TKey, TValue>, SortedList<TKey, TValue>的性能。

测试结果中有两点出乎意料:
1. LinkedList的内存占用很大,比List大了将近60%。
    我没有细看为什么多出这么多内存占用。但是如果用我自己写的一个单链表,内存占用比List低。因为工作重点不在这里,我也不打算细究为什么了。但是感觉上,LinkedList的优势应该在小数据量,频繁添加删除的场景下。

2. SortedList的访问性能比Dictionary低。
    一般认为向SortedList中添加节点的性能会比较低,因为它需要维护一个有序表,存在性能开销(当数据有序时,添加节点的开销大约是Dictionary的170%)。但是,事实上,对SortedList中节点的读写性能也要低于Dictionary(近7倍的开销)。这一点我觉得比较难以理解。

附件中是这次测试使用的程序,有兴趣的你,也许可以下载后试验一下,看看为什么是这样?

附件:https://files.cnblogs.com/Cajon/TestListPerformance.zip

powered by performancing firefox