性能比較誤人不淺(理論與現實的次數差距)


一個簡單卻誤人很深的性能比較問題如下: 

 

群里剛出現了一個反射與Emit的性能比較:

 

測試者:for了20000000次的循環,終於得出了Emit比反射性能來的好結論!!!

 

結論對不?對! 

 

比較普通的用string和stringbuilder的比較,也喜歡for 200000000次的循環,然后得出后者性能好的結論。 

 

結論對不?對!

 

縱觀基本幾有的性能測試,都喜歡for 100000000后面的0越多越好, 會感覺效果與結論更顯著一些!!!

 

其實誤區就在這次數,理論與現實的差距!!!!!

 

如果把for的次數設置底於500以下,很明顯前者性能好一些。 

 

OK,現實是什么?現實就是很少場景會用到一次操作for超過1000次的,通常for 500次以下的居多。

 

因此現實的情況是:(web多線程)並發多,單次循環次數多!

 

 

舉例:你讀取50條數據,然后反射為實體,輸出!(這么多實在的現實場景!!!而讀500000000條數據再轉實體輸出的有沒有?有,有病!)

OK, 然后一個用戶來訪問,你就for了50次。

那么1000人來訪問,是啥情況?for了50*1000???(自己猜了)

 

這就是現實了:1000個並發50次和一個人循環50*1000次的性能差別。 


本文旨在告訴大伙:

 

如果你還看不懂這些,沒事,都有個過渡,IT領域學錯比不學好,被誤導是好事,多學,錯也不打緊! 

如果你看的懂,有過誤導情節,如果你追求性能,理論歸理論,現實歸現實,結合才是硬道理! 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM