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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DataRabbit 轻量的数据访问框架(13)--DataRabbit 3.0 ORM性能大幅度提升!

發布時間:2025/5/22 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DataRabbit 轻量的数据访问框架(13)--DataRabbit 3.0 ORM性能大幅度提升! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
???DataRabbit 3.0重寫了DataRabbit 2.0的ORM實現的內核,性能提升了90倍左右,結果是DataRabbit 3.0的ORM性能與直接使用ADO.NET的性能已經非常接近。這是如何做到的?
???主要是基于兩點:
(1)DataRabbit 2.0 基于泛型和反射實現,而DataRabbit 3.0 基于泛型和Emit動態程序集實現。
???DataRabbit 2.0使用反射機制將值在O和R之間傳遞,如此大量使用反射會使性能折損不少。DataRabbit 3.0在運行時,會根據Table的Schema動態發射(Emit)針對該表的數據訪問器(Accesser)于內存中,并緩存它。DataRabbit 3.0將直接使用發射得到的數據訪問器來實現值在O和R之間的傳遞,完全避免的反射。

(2)緩存Table Schema。
???2.0版本中,當IORMAccesser基于Transaction時,其所采用的ISchemaAccesser也是基于Transaction的,由于ISchemaAccesser基于Transaction,所以一個ISchemaAccesser對象在本次事務結束時也會釋放,這使得已經獲取的Table Schema無法緩存(雖然ISchemaAccesser自身有緩存Schema的功能)。于是,我修改IORMAccesser使其采用基于非事務的ISchemaAccesser,這樣Table Schema就會被緩存下來以重復使用,避免了每次ORM Transaction 訪問數據庫時,都需要去重新獲取Schema所帶來的性能損失。

(3)其它細節優化。

???DataRabbit 2.0?與 DataRabbit 3.0關于ORM的性能對比。

(注:結算一局需要在同一Transaction中6次訪問數據庫,其中還包含了業務計算。)

???下面給出DataRabbit 3.0的下載。

???關于DataRabbit的更多介紹請見:DataRabbit 輕量的數據訪問框架(00) -- 序

轉載于:https://www.cnblogs.com/zhuweisky/archive/2007/07/28/834387.html

總結

以上是生活随笔為你收集整理的DataRabbit 轻量的数据访问框架(13)--DataRabbit 3.0 ORM性能大幅度提升!的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。