Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EclipseLink/Performance"
(→Features) |
m (→Links) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | EclipseLink is dedicated to being the best | + | EclipseLink is dedicated to being the best performing, and most scalable JPA implementation. |
==Features== | ==Features== | ||
EclipseLink's performance features include: | EclipseLink's performance features include: | ||
− | * Object cache | + | * [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_Entity_Caching|Object cache]] |
** Cache invalidation (time to live, and time of day) | ** Cache invalidation (time to live, and time of day) | ||
** Configurable cache types per Entity, (Weak, Soft, SoftCache, HardCache, Full) | ** Configurable cache types per Entity, (Weak, Soft, SoftCache, HardCache, Full) | ||
Line 9: | Line 9: | ||
** Clustered cache coordination | ** Clustered cache coordination | ||
* Querying | * Querying | ||
− | ** Join fetching (query, nested, mapping) | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Read_Only|Read-only queries]] |
− | ** Batch reading (query, nested, mapping) | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_.40JoinFetch_Annotation|Join fetching]] ([[Using_EclipseLink_JPA_Extensions_(ELUG)#Join_Fetch|query]], nested, mapping) |
+ | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Batch|Batch reading]] (query, nested, mapping) | ||
** Fetch groups (query, default, dynamic) | ** Fetch groups (query, default, dynamic) | ||
− | ** Fetch size | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Fetch_Size|Fetch size]] |
− | ** Pagination (firstResult, maxResult, ROWNUM filtering) | + | ** [[EclipseLink/Examples/JPA/Pagination|Pagination]] (firstResult, maxResult, ROWNUM filtering) |
** Cursors (stream and scrollable) | ** Cursors (stream and scrollable) | ||
− | ** Cache usage (in-memory, primary key) | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Cache_Usage|Cache usage]] (in-memory, primary key) |
** Query cache (invalidation, size configuration) | ** Query cache (invalidation, size configuration) | ||
* Mapping | * Mapping | ||
** Lazy loading | ** Lazy loading | ||
+ | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_Declaration_of_Read-Only_Classes|Read-only objects]] | ||
** Weaving enhancements | ** Weaving enhancements | ||
* Transactions | * Transactions | ||
− | ** Attribute level change tracking | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_Tracking_Changes|Attribute level change tracking]] |
** Field level updates | ** Field level updates | ||
* Database | * Database | ||
− | ** Connection pooling | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_EclipseLink_JPA_Extensions_for_JDBC_Connection_Pooling|Connection pooling]] |
− | ** Statement caching | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Parametrized SQL]] |
− | ** Batch writing (JDBC, parametrized, native) | + | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Statement caching]] |
+ | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#Using_EclipseLink_JPA_Extensions_for_JDBC|Batch writing]] (JDBC, parametrized, native) | ||
+ | * Tools | ||
+ | ** [[Using_EclipseLink_JPA_Extensions_(ELUG)#How_to_Use_the_Persistence_Unit_Properties_for_Optimization|Performance Profiler]] | ||
+ | |||
+ | ==Benchmarks== | ||
+ | * [http://www.spec.org/benchmarks.html#java SPECjAppServer®] | ||
+ | |||
+ | ==Forum Posts== | ||
+ | * [http://www.eclipse.org/newsportal/article.php?id=701&group=eclipse.rt.eclipselink#701 Configuring insert performance, EclipseLink and OpenJPA] | ||
==Links== | ==Links== | ||
− | * [ | + | * "Enhancing Performance" chapter in the ''[http://www.eclipse.org/eclipselink/documentation/ EclipseLink Solutions Guide]'' |
* [[EclipseLink/Development/Performance | Performance Development]] | * [[EclipseLink/Development/Performance | Performance Development]] | ||
− | + | * [http://java-persistence-performance.blogspot.com/ Java Persistence Performance (Blog)] | |
− | [[Category:EclipseLink]] | + | * [http://java-persistence-performance.blogspot.com/2010/08/batch-fetching-optimizing-object-graph.html Batch fetching - optimizing object graph loading] |
+ | * [http://wiki.eclipse.org/EclipseLink/Examples/Distributed#Multicore_Analysis Performance characteristics for 1-512 parallel threads on a single 8-core i7-920 node as part of a distributed JPA application] | ||
+ | [[Category:EclipseLink|Performance]] |
Revision as of 15:07, 31 January 2013
EclipseLink is dedicated to being the best performing, and most scalable JPA implementation.
Contents
Features
EclipseLink's performance features include:
- Object cache
- Cache invalidation (time to live, and time of day)
- Configurable cache types per Entity, (Weak, Soft, SoftCache, HardCache, Full)
- Configurable cache size per Entity
- Clustered cache coordination
- Querying
- Read-only queries
- Join fetching (query, nested, mapping)
- Batch reading (query, nested, mapping)
- Fetch groups (query, default, dynamic)
- Fetch size
- Pagination (firstResult, maxResult, ROWNUM filtering)
- Cursors (stream and scrollable)
- Cache usage (in-memory, primary key)
- Query cache (invalidation, size configuration)
- Mapping
- Lazy loading
- Read-only objects
- Weaving enhancements
- Transactions
- Attribute level change tracking
- Field level updates
- Database
- Connection pooling
- Parametrized SQL
- Statement caching
- Batch writing (JDBC, parametrized, native)
- Tools
Benchmarks
Forum Posts
Links
- "Enhancing Performance" chapter in the EclipseLink Solutions Guide
- Performance Development
- Java Persistence Performance (Blog)
- Batch fetching - optimizing object graph loading
- Performance characteristics for 1-512 parallel threads on a single 8-core i7-920 node as part of a distributed JPA application