JPA 实现比较:Hibernate、OpenJPA、Eclipselink
来源:互联网 发布:相机姿态矩阵 编辑:程序博客网 时间:2024/05/21 09:54
前言
目前处理一些特殊的应用场景会使用到NoSQL、Spark、Redis等特殊的存储类开源应用外,大多数应用场景还是会使用RDBMS做持久化工具,所以我还是决定做一些ORM的测试,一来回应网络上传播的一些不严谨的技术态度(说Hibernate很渣,说只有MyBatis才是救世主等等);再来也为我的工作做一些理论、实践的铺垫,让我的技术选择变得更有说服力。
测试环境
依托上一篇我翻译的文章《JPA 实现比较:Hibernate、Toplink Essentials、OpenJPA、Eclipselink》的代码和测试环境,做了一些小调整以适应我自己的场景。
1. 修改了一下对象创建,将其直接通过创建而不是克隆的方式,通过计算随机数的方式填充对象属性。
2. 内存对于我来说意义不大,所以抛弃了内存监控的过程,只是记录下读写能力值,简化测试。
3. 消除的开始程序的等待(链接JConsole的时间),直接开始测试用例。
4. 将测试时间变为10分钟,减少我个人的等待。。。可能测试数据会变少。
5. 将查询线程开始间隔做了调整,改为5秒,着重测试数据的读写随机性。
6. 之前文章提到的各个框架版本有一些老旧,对于最新的版本来说并没有说服力,所以我将所有框架都改到了最新稳定版本进行测试。
笔记本:联想 Idea Pad Y470
OS :Wnidows 7 Untimate x64
Mem :4GB 1333 MHz
CPU :Intel Core I3-2330 2.2GHz
JVM 版本 1.7.0_60-ea
MySQL 5.7.30
框架版本(默认配置)
Hibernate 4.2.1.Final
Eclipselink 2.5.0
OpenJPA 2.2.2
(为啥没有Toplink?你也知道Toplink捐献给Eclipselink了,然后Oracle就不干这东西的维护了,所以。。。)
————————————————————————————————————————————————————————————
结果
查询、插入的综合平均次数查询的执行次数插入的执行次数Hibernate95900110648975935Eclipselink95516610606585742OpenJPA40787945170813413结论
修正了文章中的语法错误
- JPA 实现比较:Hibernate、OpenJPA、Eclipselink
- JPA 实现比较:Hibernate、Toplink Essentials、OpenJPA、Eclipselink
- JPA implementations comparison: Hibernate, Toplink Essentials, Openjpa, Eclipselink
- OpenJPA与Hibernate实现JPA的性能…
- Eclipselink对JPA的实现
- Maven + EclipseLink实现的简单JPA例程
- EclipseLink/Features/JPA
- EclipseLink JPA 2.1
- Eclipselink JPA 使用小结
- OPENJPA使用JPA规范
- iBATIS、Hibernate、JPA 比较
- eclipselink + jpa + mysql 的用法
- JPA,Hibernate实现
- eclipseLink中TENANT实现
- 多租户--EclipseLink实现
- 智能一代云平台(二十二):多租户方案比较Hibernate、EclipseLink、Mybatis+Mycat
- JPA(EclipseLink)基本配置一
- EclipseLink JPA类乐观锁类型说明
- C++学习笔记(六):容器与算法
- C# 二进制 十进制 十六进制 相互转换
- 黑马程序员07——eclipse的使用方法
- ibaits 数据库批量更新:批处理和事物
- Roman to Integer
- JPA 实现比较:Hibernate、OpenJPA、Eclipselink
- poj 1511&&zoj 2008 Invitation Cards 最短路+SPFA
- 对三层开发的理解
- LeetCode | Reverse Nodes in k-Group(k个结点一组翻转链表)
- JAVA字符串转日期或日期转字符串
- Ajax,读取服务器XML格式数据
- MATLAB 解决中文乱码的方法
- Android中Activity启动模式详解
- 排序算法4--快速排序法