Interessante comparação entre as implementações do JPA, aparentemente o Hibernate levou a melhor, vejam as conclusões do autor :
My intention is that anyone can draw their own conclusions looking at the results or using the code to do a test of their own.
Nevertheless, I consider that there are a number of conclusions that one can draw watching the monitored data:
- There is not an implementation that clearly has the best performance. Some had a very good CPU or memory performance and some did it very well when inserting or querying. But none of them was outstanding as a whole.
- The number of records inserted by Hibernate was extremely higher than it was for any other implementation (4 times more compared to Eclipselink and 24 times more compared to OpenJPA). However, Hibernate was also the JPA implementation that executed the lowest number of queries, although the differences in this value (3080 for Hibernate vs 3740 for Toplink Essentials) are not so extreme as for the number of inserts.
- Hibernate was also the implementation that consumed more memory. But having into account that it inserted many more records than the others, it sounds reasonable.
- OpenJPA had the lowest value of inserts+queries.
- The number of inserts executed by OpenJPA was extremely low, compared to the others.
- The usage of CPU in the case of Toplink Essentials and Eclipselink was extremely low.