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

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


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


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

结果显示 Add花费的时间比AddRange花费的时间 高出接近5倍
再次加大数据量。增加到10000个节点。

结果显示 Add花费的时间比AddRange花费的时间 高出接近5倍
再次加大数据量。增加到10000个节点。

结果对比

TreeView 中使用 AddRange 的性能 比Add的性能高出很多。
再来看看ListBox 的 AddRange 的Add的性能比较



结果对比。

ListBox Add花费的时间比AddRange花费的时间 高出2倍
从两个对比中看出,TreeView 不适合用于大数据库显示。一般用于显示多层次的部门结构显示。
大数据量时 ListBox 的性能显然比TreeView 好。
object item = "1";
listBox1.Items.Add(item);
此处存在装箱操作,在取值发生类型转换时必然会拆箱
所以也有性能消耗。。