关于TreeView使用Node.Add() 还是 Node.AddRange()添加节点的答案

上次提了个 TreeView添加节点使用Node.Add() 还是 Node.AddRange() 的问题
今天自己做了个不是很精确的测试。。

Code


测试添加1000个节点。看看Add和AddRange 所花费的时间。




测试把一个树的节点添加到另一个树,用Add和AddRange 所花费的时间。




数据量不大的情况下。情况相对稳定。Add花费的时间是AddRange的3倍多
 
接着测试多5倍数据的情况。5000个节点。


结果显示 Add花费的时间比AddRange花费的时间 高出接近5倍

再次加大数据量。增加到10000个节点。


结果对比


TreeView 中使用 AddRange 的性能 比Add的性能高出很多。

 再来看看ListBox 的 AddRange 的Add的性能比较









结果对比。


ListBox  Add花费的时间比AddRange花费的时间 高出2倍

从两个对比中看出,TreeView 不适合用于大数据库显示。一般用于显示多层次的部门结构显示。
大数据量时 ListBox  的性能显然比TreeView 好。

 object item = "1";
 listBox1.Items.Add(item);
此处存在装箱操作,在取值发生类型转换时必然会拆箱
所以也有性能消耗。。

posted @ 2009-07-26 16:23  陈陈#  阅读(1929)  评论(0)    收藏  举报