日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

.NET 之 ORM 性能评测

發(fā)布時間:2023/12/4 asp.net 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 .NET 之 ORM 性能评测 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Why

  • 你應(yīng)該總能聽到某ORM性能比Dapper高

  • 你應(yīng)該有如下疑問:

  • 基準測試是否權(quán)威

  • 基準測試的方式是否合理

  • 基準測試的標(biāo)準是否能夠統(tǒng)一

  • 統(tǒng)一基準測試標(biāo)準/規(guī)范

  • 如何進行姿勢正確的性能測試

    相信大家對 Dapper 的性能,以及基準測試的權(quán)威性是沒有疑問的(否則不會有那么多ORM在做性能測試的時候直接選型Dapper),那么我們就使用?Dapper 性能基準測試?來作為我們的基準測試模板,并加入一些沒有納入基準測試的 ORM 。這樣從合理性/可信度就大體有了一個標(biāo)準和保障。

    接下來 fork Dapper GitHub 倉庫,并添加了?SmartSql/IBatis.Net/FreeSql/SqlSugar/Chloe

    源代碼地址:https://github.com/Ahoo-Wang/Dapper,如對測試結(jié)果,測試方法有疑問請給我提交issue。

    如何自己進行以上基準測試

    強烈建議讀者按照以下步驟自己運行基準測試。

  • Git-Clone?https://github.com/Ahoo-Wang/Dapper

  • cd Dapper/Dapper.Tests.Performance

  • dotnet publish -c release

  • 運行 Dapper.Tests.Performance.exe

  • 提示輸入,請輸入 "*" 運行所有基準測試

  • 等待測試結(jié)果,目錄:BenchmarkDotNet.Artifacts 下會有一個日志文件,和 results 文件夾 (測試結(jié)果文件存放在此目錄)

  • 基準測試結(jié)果

    重要提示:FreeSql/SqlSugar 官方nuget包為非Release版本,所以測試結(jié)果會有影響,僅供參考。

    BelgradeExecuteReaderPost78.74 us12.25000.6250-10.63 KB
    LINQ to DB'First (Compiled)'Post97.61 us20.5000--2.67 KB
    LINQ to DBQuery<T>Post103.05 us31.37500.1250-6.91 KB
    Hand CodedSqlCommandPost107.37 us42.00001.00000.500012.29 KB
    DapperQueryFirstOrDefault<dynamic>dynamic110.83 us52.87500.1250-13.57 KB
    DapperQueryFirstOrDefault<T>Post111.65 us52.25001.00000.375013.53 KB
    Hand CodedDataTabledynamic114.78 us62.00000.5000-12.51 KB
    PetaPoco'Fetch<T> (Fast)'Post114.95 us62.25000.87500.250013.71 KB
    Dapper'Query<dynamic> (buffered)'dynamic115.54 us62.25001.00000.250013.93 KB
    PetaPocoFetch<T>Post119.76 us72.50001.00000.250014.66 KB
    Dapper'Query<T> (buffered)'Post122.10 us82.25000.87500.375013.86 KB
    Susanoo'Execut<dynamic> (Static)'dynamic122.68 us82.50000.75000.250015.03 KB
    Massive'Query (dynamic)'dynamic122.82 us82.37500.87500.250014.25 KB
    ServiceStackSingleById<T>Post123.93 us83.00000.75000.250017.59 KB
    LINQ to DBFirstPost124.53 us81.12500.1250-5.53 KB
    SmartSqlQuerySingleSqlParameterCollectionPost125.26 us82.50000.75000.250015.48 KB
    SmartSqlQuerySinglePost126.79 us92.50000.75000.250015.59 KB
    LINQ to SQL'First (Compiled)'Post127.17 us92.0000--9.87 KB
    SmartSqlGetByIdPost127.24 us92.75000.75000.250015.89 KB
    SmartSqlQuerySingleStrongRequestPost127.70 us92.50000.75000.250015.51 KB
    SmartSqlQuerySingleFromXmlPost128.27 us92.75000.75000.250016.23 KB
    Susanoo'Execute<T> (Static)'Post128.92 us92.50000.75000.250015.05 KB
    SmartSqlQuerySingleStrongRequest<dynamic>dynamic129.88 us92.75001.00000.500016.54 KB
    SmartSqlQuerySingleSqlParameterCollection<dynamic>dynamic130.96 us92.50000.75000.250016.51 KB
    Dapper'Contrib Get<T>'Post132.10 us92.25001.00000.250014.51 KB
    DevExpress.XPOFindObject<T>Post137.14 us106.50000.2500-29.97 KB
    Susanoo'Execute<dynamic> (Cache)'dynamic140.24 us113.25001.00000.500020.48 KB
    Susanoo'Execute<T> (Cache)'Post141.23 us113.25000.75000.250020.96 KB
    EF 6SqlQueryPost154.68 us124.75000.7500-27.96 KB
    DevExpress.XPOGetObjectByKey<T>Post160.87 us135.25001.2500-32.35 KB
    IBatisQueryForObjectPost163.87 us142.75000.75000.250016.59 KB
    Dapper'Query<T> (unbuffered)'Post166.28 us152.25000.75000.250013.89 KB
    Dapper'Query<dynamic> (unbuffered)'dynamic171.82 us162.25000.75000.250013.93 KB
    DevExpress.XPOQuery<T>Post172.38 us167.50000.2500-35.02 KB
    FreeSqlFromSqlFirstDynamicdynamic180.44 us173.25000.75000.250019.38 KB
    EF Core'First (Compiled)'Post188.02 us183.5000--16.14 KB
    FreeSqlFromSqlFirstPost196.92 us193.25000.75000.250019.17 KB
    NHibernateGet<T>Post201.46 us205.75000.7500-32.62 KB
    NHibernateHQLPost207.57 us215.50000.7500-35.11 KB
    ChloeFirstPost209.26 us215.00000.75000.250029.85 KB
    EF CoreSqlQueryPost234.51 us224.0000--20.64 KB
    EF CoreFirstPost238.67 us234.2500--20.33 KB
    EF 6FirstPost243.86 us2410.5000--48.44 KB
    LINQ to SQLExecuteQueryPost250.54 us257.00001.00000.500042.48 KB
    EF Core'First (No Tracking)'Post250.59 us253.75000.75000.250021.44 KB
    NHibernateCriteriaPost256.87 us2611.00001.0000-65.64 KB
    EF 6'First (No Tracking)'Post314.69 us279.00001.0000-55.27 KB
    NHibernateSQLPost336.02 us2819.00001.0000-101.4 KB
    FreeSqlFirstPost429.83 us295.00001.00000.500031.56 KB
    SqlSugarFirstPost583.49 us3010.00001.0000-62.5 KB
    LINQ to SQLFirstPost761.03 us313.00001.0000-14.7 KB
    NHibernateLINQPost778.43 us3210.00002.0000-64.03 KB

    原文地址:https://www.cnblogs.com/Ahoo-Wang/p/dotnet-orm-performance-test.html

    .NET社區(qū)新聞,深度好文,歡迎訪問公眾號文章匯總?http://www.csharpkit.com?

    總結(jié)

    以上是生活随笔為你收集整理的.NET 之 ORM 性能评测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。