基本泛型类与非泛型类插值的对比
闲来无事,本人的第一篇关于c#的一些关于集合类插值所花费时间的控制台小实验。 其中实验数据为int32 类型的数据 分别插入到泛型集合与非泛型集合,其中包含的基础知识包括泛型,数据结构,装箱动作等基础知识。
尝试插入数据量为500w条值类型的数据,其中有非泛型集合(Arraylist, Hashtable),泛型集合(List,Dictionary,Queue,Stack,HashSet).
如图1相对于泛型(List,Queue,Stack,HashSet),效率还是颇快的都能在控制在0.1s左右.其中不包含Dictionary因为是以键值对的形式存在,所以所消耗的实践相当于会产生2倍多的泛型.
在对比中这两个数据结构由于是非泛型类,通过了装箱的动作,那这是装箱动作所引发的如此长时间的问题呢,还是数据结构所引发的问题呢?
由此就有了第二个实验,(如图2)这里我使用了相同类型的数据结构 两者皆为泛型(就是dic<int,int>与dic<object,object>的区别)
但是所花费的实践却高达了几倍之多,可以看出非数据结构的问题,而是装箱拆箱所引发的问题。
图1

图2

通过上述的两个小实验,我们可以看出在具体编程中如果正在处理一些比较数据量比较大的时候,我们还是最好用泛型集合.
由于是第一次写博客,如有一些不足点或者是知识点不对的地方,还请各位客官笑纳,多给小弟我提点建议:)
浙公网安备 33010602011771号