Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 353878 - perf: deployment performance regression from 2.1 to 2.3
Summary: perf: deployment performance regression from 2.1 to 2.3
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Eclipselink (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Nobody - feel free to take it CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-04 08:42 EDT by James Sutherland CLA
Modified: 2022-06-09 10:32 EDT (History)
0 users

See Also:


Attachments
patch (38.92 KB, patch)
2011-08-04 09:13 EDT, James Sutherland CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description James Sutherland CLA 2011-08-04 08:42:38 EDT
The performance of deploying a JPA persistence unit (predeploy) decreased from 2.1 to 2.3.

The cause seems to be the upgrade in asm versions.
Comment 1 James Sutherland CLA 2011-08-04 08:45:23 EDT
Looking into the issue, the asm degradation seems to be solvable by adding the skip_frames/code/debug to the metadata class reader (none of which are required for reading the metadata).

Also, most of the time is spent in loading the metadata classes, this can be improved by,
- micro optimizing the processDescription method
- avoid parsing the fields and methods unless required (only required for mapped classes, other classes should be processed lazily).
Comment 2 James Sutherland CLA 2011-08-04 09:13:30 EDT
Created attachment 200913 [details]
patch
Comment 3 James Sutherland CLA 2011-08-04 10:01:46 EDT
SVN trunk commit: Bug#353878 - regression in deployment performance

https://bugs.eclipse.org/bugs/show_bug.cgi?id=353878

Code review: Guy (pending)

Changes:
- Added JPA deployment performance tests.
- Changed MetadataAsmFactory to skip frames, code, debug when parsing class meta data.
- Added support for lazy MetadataClasses to lazily parse their fields/methods.
- Added method to MetadataFactorys to request lazy or non lazy metadata.
- Micro optimized processDescription code in MetadataAsmFactory.
- Changed metadata processing to request non lazy metadata for likely mapped classes, and lazy for all other classes.
Comment 4 James Sutherland CLA 2011-09-27 08:20:29 EDT
fixed
Comment 5 Eclipse Webmaster CLA 2022-06-09 10:32:36 EDT
The Eclipselink project has moved to Github: https://github.com/eclipse-ee4j/eclipselink