EclipseLink/Development/Performance/Results/1.0

From Eclipsepedia

Jump to: navigation, search

Performance Test Results Comparing EclipseLink 1.0 vs TopLink® Essentials

This results show the % difference in performance between EclipseLink 1.0 vs TopLink® Essentials 2.0 on various performance tests.

Each test consisted of running the test in a single threaded loop and recording the number of operations in a set amount of time. The each test was run 5 times, the max and min result rejected, and the middle 3 results were averaged to obtain the result and compute the % standard deviation. The average result was then compared with the run from the other version to compute the % difference. The tests were run on a multi-CPU AMD Linux machine, accessing an Oracle 10.2 database running on Linux.

JPA Performance Regression Test Suite

This table shows the % difference between EclipseLink 1.0 vs TopLink® Essentials, a positive % means an increase in performance by x% of the TopLink® Essentials results. The tests can have a +/- variance of 2% so any increase or decrease by less than 2% is not significant.

In general the performance between EclipseLink 1.0 and TopLink® Essentials improved significantly, mainly for reads because of the introduction of attribute change tracking. These results are meant for development to verify the performance of the release, actually performance values for user applications will vary based on the hardware, environment, database, JVM, and object model.

The ReadAll tests created a JPQL Query and called getResultList() on it. The ReadObject tests either called the find() or getReference() operation, or created a JPQL Query and called getSingleResult(). The ReadOnly tests used the "eclipselink.read-only" Query hint, note that TopLink® Essentials did not have such a hint, so was not read-only. The insert tests performed a persist() the delete tests performed a remove(), the update tests performed a find() on the object and changed it and committed the transaction.

Tests were run in JSE 1.5, using the EclipseLink and Essentials weaving agent respectively, and default caching, and accessed an Oracle 10.2 database.

Test% Dif
ReadAllAddressReadOnly69.66%
ReadAllAddress26.63%
ReadAllAddressSimpleJPQLReadOnly19.00%
ReadAllAddressSimpleJPQL20.39%
ReadAllEmpReadOnly125.38%
ReadAllEmp57.76%
ReadAllEmpComplexJPQLReadOnly52.94%
ReadAllEmpComplexJPQL53.81%
ReadAllEmpComplexDynJPQLReadOnly9.89%
ReadAllEmpCompletelyReadOnly255.22%
ReadAllEmpCompletely58.80%
ReadAllEmpCompletelyJoinedReadOnly77.59%
ReadAllEmpCompletelyJoined40.00%
ReadAllProjectReadOnly41.74%
ReadAllProject43.63%
ReadAllSmallProjectReadOnly22.08%
ReadAllSmallProject23.25%
ReadAllLargeProjectReadOnly21.36%
ReadAllLargeProject22.79%
ReadObjectAddress1,165.73%
ReadObjectGetAddress137.89%
ReadObjectAddressJPQLReadOnly27.35%
ReadObjectAddressJPQL27.96%
ReadObjectAddressNamedQuery1.58%
ReadObjectEmp143.15%
ReadObjectCompletelyEmp151.48%
InsertAddress3.04%
InsertDeleteAddress2.05%
MassInsertAddress3.09%
UpdateAddress3.38%
InsertEmp2.09%
InsertDeleteEmp-1.94%
UpdateEmployee-0.72%
ComplexUpdateEmployee1.64%
MassInsertEmployee2.38%