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

转载 2011年01月20日 19:14:00

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)- 序

相关文章推荐

开源SmallData轻量数据访问组件

  • 2008年07月12日 20:40
  • 1023KB
  • 下载

Spring ORM数据访问——JPA

JPASpring JPA在org.springframework.orm.jpa包中已经可用,Spring JPA用了Hibernate集成相似的方法来提供更易于理解的JPA支持,与此同时,了解了J...

Spring ORM数据访问——概述

介绍一下Spring中的ORMSpring框架在实现资源管理、数据访问对象(DAO)层,和事务策略等方面,支持对Java持久化API(JPA)以及原生Hibernate的集成。以Hibernate举例...

使用ORM工具进行数据访问

12.1. 简介Spring在资源管理,DAO实现支持以及事务策略等方面提供了与 Hibernate,JDO,Oracle TopLink,Apache OJB ,iBATIS SQL Mappin...

Spring ORM数据访问——Hibernate

Hibernate我们将首先介绍Spring环境中的Hibernate 5,然后介绍使用Hibernate 5来演示Spring集成O-R映射器的方法。本节将详细介绍许多问题,并显示DAO实现和事务划...

springboot【13】数据访问之整合Mybatis

本文详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。 一、整合MyBatis pom.xml中引入依赖 spring-boot-starter基础和spring...
  • IT_lyd
  • IT_lyd
  • 2017年08月08日 15:02
  • 227

DataRabbit

  • 2009年12月19日 14:34
  • 153KB
  • 下载

SQL Sugar数据访问框架

  • 2017年11月13日 16:02
  • 6.83MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:DataRabbit 轻量的数据访问框架(13)-DataRabbit 3.0 ORM性能提升
举报原因:
原因补充:

(最多只允许输入30个字)