`
sefcertyu
  • 浏览: 248926 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jpa实现测试报告openjpa性能令人发指,Hibernate表现可圈可点

阅读更多
一直对jpa怀有好感,以前也是用hibernate做jpa的实现产品,运行起来也相当不错,
最近换成openjpa做jpa的实现,突发奇想的对openjpa做了一下测试,没有想到openjpa的性能那么差劲,运行时间一般是hibernate实现jpa的3-8倍,恐怖!
下面是jpa查询结果的代码  ,同样还做了一部份关于关于Hibernate-jpa和openjpa增删改的性能测试,由于代码多就不拿出来了,测试结果都证明了openjpa的性能实在令人堪忧


--openjpa--查询100条记录
	@Test
	public void testFind_fetch() {
		long start = System.currentTimeMillis();
		
		DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
		System.out.println(qt.getTotalrecord());
		List<DataDictionary> listE = qt.getResultlist();
		DataDictionary emp = null;
		for(int    i=0;    i<listE.size();    i++)    {   
			emp = listE.get(i);
			// 延迟加载测试,openjpa不支持@Basic(fetch=FetchType.LAZY) 
			System.out.println(emp.getName());
			System.out.println(emp.getTypename());
			System.out.println(emp.getListorder());
		} 
		
		
		long end = System.currentTimeMillis();
		System.out.println(end-start);
	}

控制台打印:1828



--Hibernate-jpa查询100条记录
	@Test// 性能测试-hibernate实现jpa
	public void testFind_fetch() {		
		long start = System.currentTimeMillis();
		
		DataResult<DataDictionary> qt = dataDictionaryService.getPageData(DataDictionary.class, 1, 100);
		System.out.println(qt.getTotalrecord());
		List<DataDictionary> listE = qt.getResultlist();
		DataDictionary emp = null;
		for(int    i=0;    i<listE.size();    i++)    {   
			emp = listE.get(i);
			// 字段延迟加载测试,hibernate支持
			System.out.println(emp.getName());
			System.out.println(emp.getTypename());
			System.out.println(emp.getListorder());
		} 		
		long end = System.currentTimeMillis();
		System.out.println(end-start);
	}

控制台打印:469

测试结果:
1.都是从相同的数据库中相同的表中取100条记录,openjpa花费时间1828,hibernate-jpa花费时间469,
2.如果是从相同的数据库中取5条记录,openjpa花费时间1703,hibernate-jpa花费时间438,openjpa的成熟度可想而知。
分享到:
评论

相关推荐

    JPA教程,包括TOPLink JPA,Hibernate JPA,Open Jpa,jpa批注

    OpenJPA是由Apache软件基金会开发的开源JPA实现。它是一个轻量级、高性能的解决方案,设计目标是简化Java应用的持久化层开发。OpenJPA具有良好的可扩展性,支持动态元数据源,允许开发者在运行时调整数据映射。同时...

    jpa测试用例(很详细的介绍)

    - 负载测试,模拟大量并发请求,观察JPA在高负载下的表现。 5. **异常处理** - 测试JPA如何处理数据库异常,如UniqueConstraintViolationException(唯一约束违反异常)或OptimisticLockingFailureException...

    springmvc4+hibernate4 jpa实现整合(含jar包)

    通过参考和引用传智播客的免费教程,将springmvc4.1.6与hibernate4.3.10提供的JPA实现整合,使用mysql5.6.25,在MyEclipse2014中测试通过。可以作为web开发的基础框架使用。 使用说明: 1.需要安装mysql,并创建名为...

    jpa + hibernate 例子

    而**Hibernate**则是一个实现了JPA规范的开源ORM框架,它简化了数据库操作,使得开发者可以使用Java对象来操作数据库,而无需编写大量的SQL语句。 在**JPA + Hibernate**的例子中,通常会涉及以下几个核心概念: 1...

    JPA和Hibernate的关系

    3. **灵活性**:除了JPA标准之外,Hibernate还提供了许多额外的功能,如性能优化选项、更灵活的映射配置等,这些功能在JPA标准中可能没有涵盖。 #### 三、JPA与Hibernate的关系 JPA和Hibernate之间存在着紧密的...

    jpa中hibernate实现相关jar包

    在标题和描述中提到的"jpa中hibernate实现相关jar包"是指一组完整的Hibernate库,这些库可以帮助开发者在项目中集成JPA和Hibernate,实现对数据库的高效操作。 以下是一些关键的Hibernate JPA相关jar包及其作用: ...

    JPA(hibernate) Dao 和 DaoSupport

    Hibernate是一个流行的JPA实现,它扩展了JPA的功能,提供了更强大的查询能力和性能优化。 **DAO(Data Access Object)模式:** DAO模式是一种设计模式,用于隔离业务逻辑层和数据访问层,使得业务代码不会直接与...

    JPA注解 和hibernate 建表

    JPA和Hibernate的关系可以概括为:JPA是一个抽象层次,而Hibernate是一个具体的实现。 七、建表过程 建表过程可以分为两种方式: * 先建表:根据数据库表编写配置文件的实体Bean * 先编写文件和实体Bean,然后...

    5.Hibernate 05 Hibernate结合JPA1

    JPA支持多种ORM实现,包括Hibernate、TopLink、OpenJPA等。 **2. JPA与Hibernate的关系** JPA是一个规范,而Hibernate是JPA的一个实现。这意味着你可以使用JPA的API来编写代码,而具体的数据访问逻辑则由Hibernate...

    Spring和openJPA集成

    Spring 是一个强大的轻量级应用框架,而 OpenJPA 是一个开源的 Java Persistence API (JPA) 实现,它允许开发者将对象关系映射(ORM)功能无缝集成到应用程序中。在本文中,我们将深入探讨如何将 Spring 框架与 Open...

    Spring + JPA + Hibernate配置

    Hibernate是JPA的一个实现,它是一个强大的ORM框架,提供了更丰富的功能和更好的性能优化。Hibernate不仅支持JPA规范,还提供了一套自己的API,包括 Criteria 查询、HQL(Hibernate查询语言)等,使得数据操作更加...

    JPA jar包(基于JPA的Hibernate实现)

    在提供的压缩包“JPA JAR”中,可能包含了实现JPA的Hibernate库,如hibernate-entitymanager.jar,这个jar包包含了执行JPA操作所需的类和接口。在实际项目中,将这个jar包加入到项目的类路径中,就可以使用Hibernate...

    JPA-Hibernate包

    Hibernate不仅实现了JPA规范,还额外提供了一些特性,如二级缓存、更灵活的查询选项和性能优化工具。 **JPA核心概念:** 1. **实体(Entity)**:在JPA中,实体是映射到数据库表的Java类。通过在类上添加`@Entity`...

    hibernate+jpa注解实现最简单的增删改查

    Hibernate是JPA的一个实现,提供了更丰富的功能和更高的性能。 1. **配置环境** 在项目中引入Hibernate和JPA的相关依赖库,通常是在Maven或Gradle的pom.xml或build.gradle文件中添加依赖。对于MySQL数据库,还需要...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中文版.zip

    赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...

    hibernate-jpa.jar

    Hibernate JPA,全称为Hibernate Java Persistence API,是Hibernate组织提供的一种基于Java平台的企业级对象关系映射(ORM)解决方案,它实现了Java Persistence API(JPA),使得Java开发者能够方便地在关系数据库...

    openjpa 写的一个例子

    OpenJPA,全称Open Java Persistence API,是Java平台上的一个开源对象关系映射(ORM)框架,它实现了Java Persistence API(JPA),用于管理Java应用程序中的持久化数据。在这个"openjpademo"示例中,我们将会探讨...

    JPA测试jar包

    使用这个jar包,开发者可以进行单元测试,验证实体的映射,检查查询的性能,并且可以在多种JPA实现之间切换,以找到最适合项目需求的解决方案。在实际应用中,配合IDE如IntelliJ IDEA或Eclipse,以及Maven或Gradle等...

    JPA与Hibernate的优缺点

    Hibernate是一个基于JPA规范的开源ORM框架,它不仅实现了JPA规范,还提供了许多超出JPA范围的高级功能。Hibernate以其强大的查询语言(HQL)、缓存机制以及高度的可配置性著称,使其成为Java领域中最受欢迎的持久化...

Global site tag (gtag.js) - Google Analytics