[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [equinox-dev] How to measure and improve Eclipse 4.4 Statup Performance ?

Hi Tom,


Many thanks for your quick response !


On more testing, the incorrect âApplication Started:â message looks like an issue in the Java Runtime : With Java 7u51 it seems that on computer cold start (right after reboot), the RuntimeMXBean#getUptime() method lies â in my case, it takes the JRE 5 seconds to boot up, only then it brings up the splash screen and uptime starts counting. Iâll do slightly more investigation and might file a bug against Java since as a user, I need startup performance end-to-end. Anyways I can find a workaround for that.


The lack of the trace/activation option is a real problem IMO. We had used that lots of times to understand why unexpected bundle activation happened. But it seems that org.eclipse.osgi/monitor/lazy is a replacement, can you confirm ? And if yes, is this documented in a migration guide ?

On timing, itâs true that we never had nanosec accuracy in the past, but Jeff McAffer had requested it in Bugzillaâs (thatâs where I go the idea from). Computers have become faster, and in my tracing I see lots of bundle times just as â0â â assuming LOTS of bundles with â0â millisec each might easily add up to noticeable delay. But itâs not a big concern of mine, and looking at StackOverflow it seems that System.nanoTime() has to be consumed with caution so it might be better to stay away from that.





Martin Oberhuber, SMTS / Product Owner â Development Tools, Wind River

direct +43.662.457915.85  fax +43.662.457915.6


From: equinox-dev-bounces@xxxxxxxxxxx [mailto:equinox-dev-bounces@xxxxxxxxxxx] On Behalf Of Thomas Watson
Sent: Monday, July 14, 2014 8:02 PM
To: Equinox development mailing list
Subject: Re: [equinox-dev] How to measure and improve Eclipse 4.4 Statup Performance ?


I would be good to get a bug open to discuss your requirements or observed bugs to find a fix.

You are correct that we removed some internals from equinox in luna that were adding to the overall size and complication of the framework.  Much, if not all of the removed functionality could be implemented on top of the framework using either standard OSGi APIs or a framework extension.  But we did not put additional work into the runtime spy to migrate to use something else other than the removed internals.  I suggest a separate bug against Eclipse->Runtime for that since that bundle has never been part of Equinox.  Or actually built by the eclipse/equinox builds.

I'm not sure what you are describing for the Application Started: message.  The messages for that seem to be identical to the way they were in kepler and also seem to be accurately displayed once the splash screen is brought down.  If you are saying the time between when the splash screen is taken down until when you see the UI is taking 5 seconds then we have a real UI issue here and that should be brought up with the Eclipse-UI folks (but that is not my observation locally).

The trace/activation option is no longer supported in the framework itself.  That would need to be done on top of the framework.

If you think debug/bundleTime should use nano-seconds then a separate bug is appropriate.  Although I would be surprised if the previous timings recorded in Kepler used nano-seconds, so I am not sure why this timing is useless compared to the timings you could gather before.

Overall: I am not keen on adding any of this back by default directly in the framework implementation.  It all should be done on top in order to keep the internals of the framework more simple.


Inactive hide details for "Oberhuber, Martin" ---07/14/2014 12:26:15 PM---Dear Equinox Committers, As we've been upgrading our "Oberhuber, Martin" ---07/14/2014 12:26:15 PM---Dear Equinox Committers, As we've been upgrading our eclipse-based product to Luna, I wanted to vali

From: "Oberhuber, Martin" <Martin.Oberhuber@xxxxxxxxxxxxx>
To: "equinox-dev@xxxxxxxxxxx" <equinox-dev@xxxxxxxxxxx>
Date: 07/14/2014 12:26 PM
Subject: [equinox-dev] How to measure and improve Eclipse 4.4 Statup Performance ?
Sent by: equinox-dev-bounces@xxxxxxxxxxx

Dear Equinox Committers,
As weâve been upgrading our eclipse-based product to Luna, I wanted to validate that our startup performance is still good:

         get an *exact* measurement for the wallclosck time Eclipse takes from double clicking eclipse.exe to seeing the UI,
         get activation traces, such that I can debug reasons for bundle activations that are unexpected,
         get some per-bundle timing information to understand which bundles contribute most to startup time.

In the past, all that was possible using âdebug org.eclipse.osgi tracing options, plus Core Tools runtime spy. But it looks like ALL of the infrastructure is now broken in Luna:

1.       BundleStats are no longer collected for usage in Runtime Spy â looks like this feature was just removed:
As a result, the Runtime Spy looks pretty much useless â thereâs no data in the âRuntime Spyâ perspective at all even though monitoring is enabled.

2.       The org.eclipse.osgi/trace/activation=true tracing option doesnât print activation stack traces to âruntime.tracesâ any more (is this just a bug / oversight or am I doing something wrong?)
3.       The Application Started: <timestamp> output which we get with âdebug âconsoleLog does not seem to be accurate any more. Measuring wallclock time, Eclipse is on average 5 seconds slower than indicated by the timestamp.

Reading the docs, I found a reference to the newly introduced debug/bundleTime tracing option, but Iâm unsure how to interpret the data; it also seems to be very inexact and thus useless to me (getting nanosecond resolution would be good
when available).
Is there any new infrastructure available to get me the data I need ?
How do others measure and improve startup performance ?
Shall I just file defects for the regressions observed ?
Martin Oberhuber, SMTS / Product Owner â Development Tools, Wind River
direct +43.662.457915.85  fax +43.662.457915.6
equinox-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe from this list, visit

GIF image