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的成熟度可想而知。

你可能感兴趣的:(Hibernate,jpa,qt)