Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Equinox » Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+?
Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #524915] Sat, 03 April 2010 22:46 Go to next message
Eclipse UserFriend
Originally posted by: wbeckwith.gmail.com

We have a plug-in offering that has been stuck at Eclipse 3.3.2 due to a
customer's issue. The customer is now moving to Eclipse 3.5.2 and we
now see startup performance that is on average 10x slower with 3.5.2
over 3.3.2. I downloaded every released SDK from Eclipse 3.3.2 to 3.5.2
and even tried with 3.6M6, and after multiple runs, the results still
hold that startup performance is roughly 10x slower.

The following results where achieve by only setting the target platform
to each of the SDK downloads.

#
# Eclipse 3.3.2 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 902
JPA Providers DB Start Time (ms): 366
Total JPA Providers DB Start Time (ms): 1268
JPA Providers Rebuild Session Time (ms): 1610
Total JPA Providers Rebuild Session Time (ms): 2878
JPA Providers Validate Schema Time (ms): 169
Total JPA Providers Validate Schema Time (ms): 3047
*** loading data
JPA Providers Load Data Time (ms): 727
Total JPA Providers Load Data Time (ms): 3774
Total JPA Providers Load Time (ms): 3774

#
# Eclipse 3.4.0 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 892
JPA Providers DB Start Time (ms): 372
Total JPA Providers DB Start Time (ms): 1264
JPA Providers Rebuild Session Time (ms): 2114
Total JPA Providers Rebuild Session Time (ms): 3378
JPA Providers Validate Schema Time (ms): 725
Total JPA Providers Validate Schema Time (ms): 4103
*** loading data
JPA Providers Load Data Time (ms): 1152
Total JPA Providers Load Data Time (ms): 5255
Total JPA Providers Load Time (ms): 5255

#
# Eclipse 3.4.1 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 1359
JPA Providers DB Start Time (ms): 322
Total JPA Providers DB Start Time (ms): 1681
JPA Providers Rebuild Session Time (ms): 1558
Total JPA Providers Rebuild Session Time (ms): 3239
JPA Providers Validate Schema Time (ms): 452
Total JPA Providers Validate Schema Time (ms): 3691
*** loading data
JPA Providers Load Data Time (ms): 402
Total JPA Providers Load Data Time (ms): 4093
Total JPA Providers Load Time (ms): 4093

#
# Eclipse 3.4.2 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 1230
JPA Providers DB Start Time (ms): 284
Total JPA Providers DB Start Time (ms): 1514
JPA Providers Rebuild Session Time (ms): 1824
Total JPA Providers Rebuild Session Time (ms): 3338
JPA Providers Validate Schema Time (ms): 159
Total JPA Providers Validate Schema Time (ms): 3497
*** loading data
JPA Providers Load Data Time (ms): 411
Total JPA Providers Load Data Time (ms): 3908
Total JPA Providers Load Time (ms): 3908

#
# Eclipse 3.5.0 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 12338
JPA Providers DB Start Time (ms): 2497
Total JPA Providers DB Start Time (ms): 14835
JPA Providers Rebuild Session Time (ms): 18635
Total JPA Providers Rebuild Session Time (ms): 33470
JPA Providers Validate Schema Time (ms): 3292
Total JPA Providers Validate Schema Time (ms): 36762
*** loading data
JPA Providers Load Data Time (ms): 8164
Total JPA Providers Load Data Time (ms): 44926
Total JPA Providers Load Time (ms): 44926

#
# Eclipse 3.5.1 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 19910
JPA Providers DB Start Time (ms): 2651
Total JPA Providers DB Start Time (ms): 22561
JPA Providers Rebuild Session Time (ms): 25876
Total JPA Providers Rebuild Session Time (ms): 48437
JPA Providers Validate Schema Time (ms): 4176
Total JPA Providers Validate Schema Time (ms): 52613
*** loading data
JPA Providers Load Data Time (ms): 11439
Total JPA Providers Load Data Time (ms): 64052
Total JPA Providers Load Time (ms): 64052

#
# Eclipse 3.5.2 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 16077
JPA Providers DB Start Time (ms): 2634
Total JPA Providers DB Start Time (ms): 18711
JPA Providers Rebuild Session Time (ms): 20225
Total JPA Providers Rebuild Session Time (ms): 38936
JPA Providers Validate Schema Time (ms): 3264
Total JPA Providers Validate Schema Time (ms): 42200
*** loading data
JPA Providers Load Data Time (ms): 9317
Total JPA Providers Load Data Time (ms): 51517
Total JPA Providers Load Time (ms): 51517

#
# Eclipse 3.6M6 SDK
#
LISA_HOME set to C:\Lisa\
Total JPA Providers Configure Time (ms): 16595
JPA Providers DB Start Time (ms): 2611
Total JPA Providers DB Start Time (ms): 19206
JPA Providers Rebuild Session Time (ms): 22332
Total JPA Providers Rebuild Session Time (ms): 41538
JPA Providers Validate Schema Time (ms): 3550
Total JPA Providers Validate Schema Time (ms): 45088
*** loading data
JPA Providers Load Data Time (ms): 8235
Total JPA Providers Load Data Time (ms): 53323
Total JPA Providers Load Time (ms): 53323

So can anybody answer what happened between 3.4.2 and 3.5.0 that
performance took a nose dive? From early profiling it looks like the
classloading has changed and not all for the better, but I need to
profile them all before I can reach that conclusion.

Wb
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #524916 is a reply to message #524915] Sun, 04 April 2010 03:49 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: wbeckwith.gmail.com

More info in case it helps.

Our feature is composed of 7 plug-ins, with the base platform plug-in
only depending on the org.eclipse.core.runtime plug-in and this is only
because of the need to have an Activator subclass. The platform plug-in
wraps about 100 other jar files. When a user tries to open one of our
custom editors, our editor plug-in depends on the platform plug-in which
causes the JPA provider code to execute. It is here that performance
goes out the window.

Wb
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #525080 is a reply to message #524916] Mon, 05 April 2010 18:25 Go to previous messageGo to next message
Thomas Watson is currently offline Thomas WatsonFriend
Messages: 437
Registered: July 2009
Senior Member
Do you get a log file that has entries about some class load timing out due to waiting for a bundle to activate? I am wondering if you are hitting some deadlock in lazy activating bundles. If this is happening I would expect some message in your log like this:

While loading class "X", thread "Y" timed out waiting (5000ms) for thread "Z" to finish starting bundle "A". To avoid deadlock, thread "Y" is proceeding but "X" may not be fully initialized.
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #525262 is a reply to message #524916] Mon, 05 April 2010 16:44 Go to previous messageGo to next message
Jens Muehlenhoff is currently offline Jens MuehlenhoffFriend
Messages: 20
Registered: July 2009
Junior Member
Wendell Beckwith wrote:
> More info in case it helps.
>
> Our feature is composed of 7 plug-ins, with the base platform plug-in
> only depending on the org.eclipse.core.runtime plug-in and this is only
> because of the need to have an Activator subclass. The platform plug-in
> wraps about 100 other jar files. When a user tries to open one of our
> custom editors, our editor plug-in depends on the platform plug-in which
> causes the JPA provider code to execute. It is here that performance
> goes out the window.
>
> Wb
Hello Wendell,

have you tried to start some kind of profiler (Yourkit, JProfiler, hprof, ...) with your application?
This will get you right to the methods which reduces the performance.

Regards, Jens
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #525306 is a reply to message #525262] Tue, 06 April 2010 07:36 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: wbeckwith.gmail.com

On 4/5/2010 4:33 PM, Jens wrote:
> Hello Wendell,
>
> have you tried to start some kind of profiler (Yourkit, JProfiler, hprof, ...) with your application?
> This will get you right to the methods which reduces the performance.
>
> Regards, Jens

Yes, I have and it is definitely classloader related. Yourkit shows
several different things and I'm learning to read what it says, but what
I have learned is that by moving the hibernate jars and its associated
dependencies to the front of the bundle's classpath, I have manage to
cut 30 seconds off of the initialization time.

Had a quick exchange with Jeff M. and he's never heard of a hit like
this, so he feels I should open a bug, which I'm going to do RSN.

Wb
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #525309 is a reply to message #525080] Tue, 06 April 2010 07:42 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: wbeckwith.gmail.com

On 4/5/2010 1:25 PM, Thomas Watson wrote:
> Do you get a log file that has entries about some class load timing out
> due to waiting for a bundle to activate? I am wondering if you are
> hitting some deadlock in lazy activating bundles. If this is happening I
> would expect some message in your log like this:
>
> While loading class "X", thread "Y" timed out waiting (5000ms) for
> thread "Z" to finish starting bundle "A". To avoid deadlock, thread "Y"
> is proceeding but "X" may not be fully initialized.
>

I don't see anything like that in the logs. Is there some tracing
option I need to set to get these messages?

Wb
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [message #525529 is a reply to message #525306] Tue, 06 April 2010 19:09 Go to previous messageGo to next message
Thomas Watson is currently offline Thomas WatsonFriend
Messages: 437
Registered: July 2009
Senior Member
Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=308157 was opened for this issue. I think the slowdown is related to the osgi.bundlefile.limit option and the fact that the default value for 3.5 changed to 100. You should try increasing the osgi.bundlefile.limit value (e.g. to 1000) or disable it by setting it to 0. See the bug report for more information.

HTH

Tom.
Re: Why is Eclipse 3.4.2- orders faster than Eclipse 3.5.0+? [SOLVED] [message #525866 is a reply to message #525529] Thu, 08 April 2010 05:25 Go to previous message
Eclipse UserFriend
Originally posted by: wbeckwith.gmail.com

On 4/6/2010 2:09 PM, Thomas Watson wrote:
> Bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=308157 was opened for
> this issue. I think the slowdown is related to the osgi.bundlefile.limit
> option and the fact that the default value for 3.5 changed to 100. You
> should try increasing the osgi.bundlefile.limit value (e.g. to 1000) or
> disable it by setting it to 0. See the bug report for more information.
>
> HTH
>
> Tom.

The slow performance was indeed caused by the bundle limit of 100 jars
being opened. When the limit was increased the classpath load times for
JPA initialization dropped back in the 4 sec range.

Wb
Previous Topic:[Enhancement] Please improve Exceptions to show more detail when it occur ClassNotFoundException.
Next Topic:Any plans on OSGi Monitor Admin?
Goto Forum:
  


Current Time: Sat Dec 20 08:56:56 GMT 2014

Powered by FUDForum. Page generated in 0.01967 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software