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

本文通过具体的测试案例对比了OpenJPA与Hibernate作为JPA实现时的性能表现,结果显示在相同条件下OpenJPA的查询及增删改操作耗时远高于Hibernate。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一直对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的成熟度可想而知。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值