EclipseLink/Development/Performance/Results/1.2

From Eclipsepedia

< EclipseLink‎ | Development‎ | Performance
Revision as of 14:22, 16 November 2009 by James.sutherland.oracle.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Performance Test Results Comparing EclipseLink 1.2 vs EclipseLink 1.1

This results show the % difference in performance between EclipseLink 1.2 and EclipseLink 1.1 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 1.1 and 1.0, a positive % means an increase in performance by x% of the 1.0 results. The tests can have a +/- variance of 2% some any increase or decrease by less than 2% is not significant.

In general the performance between 1.1 and 1.2 improved slightly, with some use cases improving significantly. 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. 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.6, using the EclipseLink weaving agent, and default caching, and accessed an Oracle 10.2 database.

Database Results

Test% Dif
ReadAllAddressReadOnly1.12%
ReadAllAddress0.93%
ReadAllAddressSimpleJPQLReadOnly3.69%
ReadAllAddressSimpleJPQL3.93%
ReadAllAddressNamedQueryReadOnly3.69%
ReadAllAddressNamedQuery4.16%
ReadAllEmpReadOnly0.19%
ReadAllEmp3.95%
ReadAllEmpComplexJPQLReadOnly4.28%
ReadAllEmpComplexJPQL4.15%
ReadAllEmpComplexDynJPQLReadOnly2.58%
ReadAllEmpCompletelyReadOnly0.88%
ReadAllEmpCompletely38.06%
ReadAllEmpCompletelyJoinedReadOnly1.05%
ReadAllEmpCompletelyJoined17.65%
ReadAllProjectReadOnly3.04%
ReadAllProject3.39%
ReadAllSmallProjectReadOnly0.93%
ReadAllSmallProject2.30%
ReadAllLargeProjectReadOnly2.34%
ReadAllLargeProject3.02%
ReadObjectAddress9.28%
ReadObjectGetAddress11.72%
ReadObjectAddressJPQLReadOnly3.57%
ReadObjectAddressJPQL3.77%
ReadObjectAddressNamedQuery4.00%
ReadObjectEmp13.91%
ReadObjectCompletelyEmp14.26%
InsertAddress8.34%
InsertDeleteAddress14.54%
MassInsertAddress1.82%
UpdateAddress3.15%
InsertEmp6.93%
InsertDeleteEmp4.23%
UpdateEmployee7.04%
ComplexUpdateEmployee11.30%
MassInsertEmployee0.00%