OK,大家已經(jīng)看到前面的文章了,本來說是第二天就發(fā)這篇文章的,但后來因?yàn)榉祷乩霞业脑,沒有發(fā)成,特此補(bǔ)發(fā)。
測試環(huán)境:
Lenovo ThinkPad T61
CPU: Intel T7500
Mem: 2GB
Os: Windows Vista Ultimate (x86) sp1
測試內(nèi)容:
創(chuàng)建100萬個對象。
測試方式:
1 for(var i = 0; i < 1000000; i++)
2 // create the object
然后計(jì)算這段代碼消耗的時(shí)間
測試結(jié)果:
使用new關(guān)鍵字 17ms
使用System.Activator類的CreateInstance方法動態(tài)創(chuàng)建 484ms
使用System.Activator類的CreateInstance<T>方法動態(tài)創(chuàng)建 1545ms
使用泛型約束,使用new關(guān)鍵字創(chuàng)建對象(泛型方法)1604ms
使用泛型類的靜態(tài)方法、泛型約束和new關(guān)鍵字創(chuàng)建 1504ms
使用泛型類的動態(tài)方法、泛型約束和new關(guān)鍵字 1481ms
這里使用new關(guān)鍵字無疑是最快的,比較有趣的主要有以下2點(diǎn):
使用System.Activator的非泛型方法比使用泛型方法快很多(超過200%)
使用泛型約束和new關(guān)鍵字創(chuàng)建的速度幾乎和System.Activator的泛型方法的一樣
那么,在下一篇文章里面,我將會探索和分析造成速度差異的原因,敬請期待。