目前正在為一個C/S架構(gòu)的超市業(yè)務(wù)往來系統(tǒng)進(jìn)行系統(tǒng)架構(gòu),為了提升性能和改善維護(hù)性,我準(zhǔn)備使用對象池技術(shù),在此之前參考了BeanSoft的那篇對象池代碼,用.Net重寫了一個并測試了性能。
測試用例:
10000次生成OleDbConnection的實例,并使用Open方法打開連接
結(jié)果:
直接使用new語句生成實例不釋放 需要12秒多一點
使用對象池生成實例不釋放 需要7秒多一點
性能提升約 48%左右
但是如果在每次使用之后都調(diào)用Close()方法釋放資源的話,則兩者性能基本相同。
看來主要是因為占用的資源不釋放,導(dǎo)致系統(tǒng)變慢。換句話說,如果系統(tǒng)需要比較頻繁的調(diào)用某些對象的實例的話,那么可以使用對象池技術(shù)來改善總體性能。
---------------------------------------------------------
專注移動開發(fā)
Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian