CYQ.Data 批量添加數據性能測試(每秒千、萬)

今天有網友火晉地同窗進了CYQ.Data官方羣了,他正在折騰了一個各大ORM性能測試的比較的軟件,以下圖數據庫

折騰的種類也很多:編程

 

感受這軟件折騰的不錯~~~值的期待~~~框架

另外,他指出CYQ.Data 在他的軟件裏表現不佳~~~~函數

因此我要了他的測試實例看看是怎麼寫的測試代碼:性能

測試的過程,大致是開了N個線程,循環N次執行這樣的函數。測試

找到表現不佳的緣由,並解決:編碼

中間紛紛繞繞的講了一些各大ORM測試的實例編寫不一樣問題,不過有一句,倒引發了個人注意,說平均400毫秒左右。spa

因而我本地測試了一下,結果找出AOP讀取配置文件的一個小BUG,這個小BUG在每次new MAction時產生個被捕獲的小異常,這個小異常不影響使用,但會佔用2毫秒以上時間~~~線程

因此整個評測都是不斷的new MAction的狀況,就是大事件了,這就是總體評測都不佳的緣由了。code

 

OK,修正這個小Bug後,下面來演示一下批量插入功能:

看看1萬條數據,插入須要多長時間:

數據庫爲MSSQL 2005 CPU爲i3,4G內存,數據表Consumer共4個字段。

每一個示例先後都會truncate table  Consumer;

 

第一種編碼方法:經過不斷的new MAction來實現插入,1萬條用了6秒多,平均每秒插入1600條左右:

 

 

 

 

第二種編碼方法:把for往裏面移動,先不開啓事務,1萬條用了4秒多,平均每秒插入2500條左右

 


 

 

第三種編碼碼方式,開啓啓事務呢,1萬條用了2秒多,平均每秒插入4000條左右:

 

 

 

第四種編碼方式:使用MDataTable的實現批量插入,1萬條用了0.6秒多,平均每秒插入2萬條左右:

 

 

事實上,時間是花在數據的實體轉Table的過程,若是把這一塊時間分出,只計算數據庫批量插入的時間:

10萬條用了0.8秒多,平均每秒插入10萬條以上:

 

 

 

總結:

今天的測試,僅是作爲樣式供參考,不一樣的編碼方式,實際上產生的性能點不一樣的,根據項目須要編程纔是重點。

從07年開始寫ORM框架,大大小小的框架寫過很種風格,但真正的精華做品,卻僅此一種。

另外其它多種ORM類型的比較,就等火晉地同窗之文章了。

相關文章
相關標籤/搜索