c# 國內外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver資料常規插入測試效能對比

2022-06-29 18:00:44

c# 國內外ORM 框架 dapper efcore sqlsugar freesql hisql sqlserver資料常規插入測試效能對比對比

在6.22 號釋出了 c# sqlsugar,hisql,freesql orm框架全方位效能測試對比 sqlserver 效能測試 引起了很多爭議

宣告

首先我還是要做一下宣告,測的都是開源軟體,都是有開源協定的,而且測試原始碼已經開放不存在有故意黑的主觀意圖,測試結果僅為博主的電腦的設定測試的結果為測試結果呈現,測試結果不為最終結果。如果有意見請文明反饋,不接受任何形式的威脅與刪博!!!

上次有部分網友說要對比一下efcore 和dapper的對比測試。那麼這次來一次國內外ORM進行測試對比。

不過有點遺憾的是 目前dapper 和efcore 官方包中沒有bulkcopy的功能(第三方外掛有),因為官方沒有如果拿第三方外掛來做bulkcopy的對比這樣有失公允,所以本次測試不測bulkcopy的,如果網友有比較認可的第三方外掛那麼下一次安排上。

經過上一次的測試經驗 這次博主用兩臺電腦測試 兩臺電腦的設定如下

測試方案

  1. 因為不同的列插入的效能和時間肯定是有差別的本測試採用10列以下的資料集和50列的資料集進行測試
  2. 從5,50,100,500,1000,5000,10000,50000,100000 的資料階段進行對比測試
  3. 為了防止有人說一臺電腦測試不準,那麼這次使用兩臺相同設定的電腦進行對比測試
  4. 測試的原始碼 上傳到github
  5. 所有相關ORM的包都通過nuget安裝最新版本2022.6.28前釋出的
  6. 執行的測試程式都是在release環境執行
  7. 多個ORM同時執行,如果有影響那麼整體相互影響測試相對是公平的
  8. 每個ORM插入的是獨立的專用表,但結構是一模一樣(不存在表不同的問題)

測試原始碼https://github.com/tansar/HiSqlTestDemo

測試結果

廢話不多說先看測試結果,以下測試結果對排名進行不同顏色區分以下是顏色區分的圖示

第一臺電腦測試結果

dapper efcore hisql sqlsugar freesql10列以下的常規資料插入測試結果

這個測試結果有沒有讓人很意外 efcore說實在的在很多網友的印象中應該還算是不錯的,結果測試出來...(不會有人說我在黑efcore吧) 我只是基於這個測試結果來說

dapper efcore hisql sqlsugar freesql 50列常規資料插入測試結果

50列的 efcore 就更加明顯了 ,至於排名我請大家自己評判吧

好了, 這是第一臺測試電腦的結果

第二臺電腦測試結果

dapper efcore hisql sqlsugar freesql10列以下的常規資料插入測試結果

這臺電腦的設定排名相對於第一臺電腦有一點變化

dapper efcore hisql sqlsugar freesql 50列常規資料插入測試結果

第一臺電腦的測試明細截圖

第一臺電腦5條10列以下插入截圖

第一臺電腦50條10列以下插入截圖

第一臺電腦100條10列以下插入截圖

第一臺電腦500條10列以下插入截圖

第一臺電腦1000條10列以下插入截圖

第一臺電腦5000條10列以下插入截圖

第一臺電腦10000條10列以下插入截圖

第一臺電腦50000條10列以下插入截圖

第一臺電腦100000條10列以下插入截圖

第一臺電腦5條50列插入截圖

第一臺電腦50條50列插入截圖

第一臺電腦100條50列插入截圖

第一臺電腦500條50列插入截圖

第一臺電腦1000條50列插入截圖

第一臺電腦5000條50列插入截圖

第一臺電腦10000條50列插入截圖

第一臺電腦50000條50列插入截圖

第一臺電腦100000條50列插入截圖

第二臺電腦的測試明細截圖

第二臺電腦5條10列以下插入截圖

第二臺電腦50條10列以下插入截圖

第二臺電腦100條10列以下插入截圖

第二臺電腦500條10列以下插入截圖

第二臺電腦1000條10列以下插入截圖

第二臺電腦5000條10列以下插入截圖

第二臺電腦10000條10列以下插入截圖

第二臺電腦50000條10列以下插入截圖

第二臺電腦100000條10列以下插入截圖

第二臺電腦5條50列插入截圖

第二臺電腦50條50列插入截圖

第二臺電腦100條50列插入截圖

第二臺電腦500條50列插入截圖

第二臺電腦1000條50列插入截圖

第二臺電腦5000條50列插入截圖

第二臺電腦10000條50列插入截圖

第二臺電腦50000條50列插入截圖

第二臺電腦100000條50列插入截圖

測試電腦設定

兩臺一模一樣設定電腦

第一臺電腦設定

記憶體,CPU 相關設定

sqlserver 版本資訊

第二臺電腦設定

記憶體,CPU 相關設定

sqlserver 版本資訊

總結

本測試結果僅作參考,在不同的電腦環境可能體現出來的測試結果可能有差異,但整體排名差不大