Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 323461 - Eclipse slower on 1.6 than on 1.5
Summary: Eclipse slower on 1.6 than on 1.5
Status: CLOSED FIXED
Alias: None
Product: Platform
Classification: Eclipse Project
Component: Releng (show other bugs)
Version: 3.7   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Satyam Kandula CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 323009 323010 323018 323022 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-08-24 02:34 EDT by Dani Megert CLA
Modified: 2017-07-04 14:03 EDT (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dani Megert CLA 2010-08-24 02:34:37 EDT
3.6 M1 (but is a general issue).

Bug 323439 in our performance test infrastructure revealed that we run slower on 1.6 than on 1.5 (blocked bugs for details).

We need to profile some of those scenarios to see whether they have a common root cause and whether there is something we could do about (change vm arguments, use different APIs, etc.).

Interesting part is that it happens on Linux and Windows.
Comment 1 Dani Megert CLA 2010-08-24 02:35:05 EDT
Frédéric, can you please do that investigation for us.
Comment 2 Dani Megert CLA 2010-08-24 02:41:08 EDT
*** Bug 323018 has been marked as a duplicate of this bug. ***
Comment 3 Dani Megert CLA 2010-08-24 02:41:20 EDT
*** Bug 323022 has been marked as a duplicate of this bug. ***
Comment 4 Dani Megert CLA 2010-08-24 02:43:06 EDT
*** Bug 323010 has been marked as a duplicate of this bug. ***
Comment 5 Dani Megert CLA 2010-08-24 02:44:38 EDT
*** Bug 323009 has been marked as a duplicate of this bug. ***
Comment 6 Dani Megert CLA 2010-08-24 02:48:05 EDT
> (blocked bugs for details).
See duplicates.
Comment 7 Frederic Fusier CLA 2010-08-24 04:12:58 EDT
(In reply to comment #1)
> Frédéric, can you please do that investigation for us.

Sure
Comment 8 Frederic Fusier CLA 2010-08-24 04:26:19 EDT
Hmmm, really weird... Doing the same test on my Linux box, I got the opposite result: the JDT/Core tests are faster using 1.6 than 1.5!? (BTW, not so weird as I would say it should have been the expected results... :-S)

I'll redo all my tests to verify that I did not make any mistake while running them as I definitely want to be sure of these results...

Kim,
A question while waiting for the new results: was the switch from 1.5 to 1.6 the only change you made on those machine or were there any other ones?
Comment 9 John Arthorne CLA 2010-08-24 08:30:53 EDT
Very strange, since performance was supposedly one of the big goals in Java 6 development for HotSpot:

http://java.sun.com/performance/reference/whitepapers/6_performance.html
Comment 10 Dani Megert CLA 2010-08-24 08:33:29 EDT
It can also be a memory issue, e.g. with our current memory VM args it might trigger more GCs on 1.6. Frédéric, are you sure you used the same VM args as our test scripts do? Kim, are they the same on HEAD and the baseline?
Comment 11 Frederic Fusier CLA 2010-08-24 09:17:24 EDT
See bug 321142 for the patches applied to the builder while changing from 1.5 to 6.0...
Comment 12 Kim Moir CLA 2010-08-24 10:20:32 EDT
regarding comment #8

Yes, the switch to the new VMs was made on August 4, 2010. See bug 321142 for details.

The new perf database machine started being used August 6, 2010 but this shouldn't impact the measurements in the tests themselves. Bug 321124.
Comment 13 Frederic Fusier CLA 2010-08-24 11:02:59 EDT
I have interesting results while running manually the JDT/Core Type Hierarchy test FullSourceWorkspaceTypeHierarchyTests#testPerfAllTypes() on a Linux and Windows machines with the different JVM setup...

Windows (Vista):
                run1    run2   run3   mean
jvm 1.5.0_14:   2.07s   2.06s  2.06s  2.06s
jvm 6.0_04:     1.92s   1.89s  1.89s  1.90s  => +7.68% (faster)
jvm 6.0_17:     2.42s   2.38s  2.38s  2.39s  => -16.18% (slower)

Linux (RedHat 5.5):
                run1    run2   run3   mean
jvm 1.5.0_14:   456ms   482ms  439ms  459ms
jvm 6.0_04:     518ms   509ms  530ms  519ms  => -13.07% (slower)
jvm 6.0_17:     516ms   562ms  531ms  536ms  => -16.78% (slower)


Note that my initial test (comment 8) was made with different vm builds...

So, it seems that the new used JDK6 version has some performance troubles.
I'll come shortly with similar tests using JDK 6.0_20 and JDK 6.0_21 to see if they still have this perf issue...
Comment 14 Frederic Fusier CLA 2010-08-24 12:48:01 EDT
Here are the complete results including more recent JDK 1.5.0 and 6.0 builds for my Linux machine:

Linux (RedHat 5.5):
                run1    run2   run3   mean
jvm 1.5.0_14:   456ms   482ms  439ms  459ms
jvm 1.5.0_22:   440ms   404ms  415ms  420ms  =>  +8.50% (faster)
jvm 6.0_04:     518ms   509ms  530ms  519ms  => -13.07% (slower)
jvm 6.0_17:     516ms   562ms  531ms  536ms  => -16.78% (slower)
jvm 6.0_20:     565ms   527ms  559ms  536ms  => -16.78% (slower)
jvm 6.0_21:     485ms   524ms  507ms  505ms  => -10.02% (slower)

I finally gave up to dump the results on the Windows machine as the dispersion is really too high to make the numbers meaningful with so less runs... E.g. for the 1.5.0_14 jvm build, I got numbers between 1.42s and 5.01s!!!

Note that on releng perf machines, there were several JDKs updates this year:
1) on 6.0 machines, the JDK was upgraded from 6.0_04 to 6.0_17 on 2010/01/14
2) on 1.5.0 machines, the JDK was upgraded:
   a) from 1.5.0_14 to 1.5.0_22 on 2010/01/14
   b) from 1.5.0_22 to 6.0_17 on 2010/07/28

These numbers would confirm the observed regression which is around 30% on the test. As the baseline uses a JDK 1.5.0_22 and HEAD a JDK 6.0_17, we get respectively 420ms and 519 which makes a regression of 23.57%...

I continue to test all these different jvm builds but this time with doing 20 runs which will allow me to smooth the numbers and then get a more significant result.
Comment 15 Olivier Thomann CLA 2011-04-13 11:50:13 EDT
1.6 VM are checking stack maps so this can take a couple of milliseconds.
Comment 16 Dani Megert CLA 2011-04-14 01:35:26 EDT
Satyam, this is not high prio and can also be done even after 3.7 ships as most likely even if we know the cause there won't be much we could do at this stage.

We should then also compare with 1.7.
Comment 17 Alexander Kurtakov CLA 2016-12-05 07:46:15 EST
Now that Java 1.8 is required I suggest closing this bug and opening another one when someone has real data for comparison.