Java Performance Degradation in JDK7 and JDK8

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Wed Apr 29 13:12:16 UTC 2015


On 29/04/15 12:44, Jacob Wieland wrote:
> Hello Maurizio,
>
> are you sure that you used the 64bit versions of javac? I could only 
> observe the behavior with these.
Yep I'm on a Ubuntu x64 machine. It's actually pretty standard hardware 
too - i.e. intel i5 (two cores, but OS sees 4 because of hyper-threading).
> Also, I just tried with jdk8u31-64b and it takes AGES (still running 
> after 17 minutes where the jdk6 was done after 2), top shows 4GB VIRT 
> memory use and 350 % load (on a 4core processor).
Maybe the reproducer you sent was incorrect?

Maurizio
>
> So, I don't think it was that problem.
>
> 2015-04-29 12:00 GMT+02:00 Maurizio Cimadamore 
> <maurizio.cimadamore at oracle.com <mailto:maurizio.cimadamore at oracle.com>>:
>
>     These are the numbers I'm getting:
>
>     JDK 9 (b42)
>
>     Note: generated_ttcn/TTCN3_CommonDefs.java uses or overrides a
>     deprecated API.
>     Note: Recompile with -Xlint:deprecation for details.
>
>     real    0m46.306s
>     user    2m17.489s
>     sys    0m2.166s
>
>     JDK 8 (GA)
>
>     Note: generated_ttcn/TTCN3_CommonDefs.java uses or overrides a
>     deprecated API.
>     Note: Recompile with -Xlint:deprecation for details.
>
>     real    6m58.748s
>     user    8m43.546s
>     sys    0m2.132s
>
>     JDK 7 (1.7.0_79)
>
>     Note: generated_ttcn/TTCN3_CommonDefs.java uses or overrides a
>     deprecated API.
>     Note: Recompile with -Xlint:deprecation for details.
>
>     real    0m28.341s
>     user    1m17.194s
>     sys    0m1.886s
>
>
>     As you can see there is a significant regression from JDK 7 to JDK
>     8 which was caused by
>
>     https://bugs.openjdk.java.net/browse/JDK-8043253
>
>     (some stack trace analysis revealed the familiar pattern). This
>     has also been fixed in JDK 8u20 (as stated in the bug evaluation).
>
>     So, while JDK 8u20/9 is slower than JDK 7 (at least on my
>     machine), the numbers are more or less in the same ballpark and
>     the huge regression that was visible in earlier JDK 8 releases has
>     now been fixed.
>
>     If you are still experiencing the problem - can you please also
>     submit the specific compiler versions you are using in your benchmark?
>
>     Maurizio
>
>
>
>     On 29/04/15 10:29, Maurizio Cimadamore wrote:
>>     Hi Jacob,
>>     Stay assured - as we'll definitively look into this issue (I see
>>     it's already assigned to one of my colleagues).
>>
>>     What I can say (w/o looking too much at the attached artifacts)
>>     is that in general, javac has no issue with compiling a lot of
>>     sources at once; at one point the build system was structured in
>>     such a way that all the JDK classes were compiled at once - and
>>     that (which is way more than your 187 sources - i.e. at least 10x
>>     that) took less than 20 seconds. SO there must some specific
>>     pattern triggering that issue.
>>
>>     Given that you say you have 187 input sources and 48K output
>>     classes, I'd say you are using inner classes a lot. I wonder if
>>     you are hitting this:
>>
>>     https://bugs.openjdk.java.net/browse/JDK-8000316
>>
>>     Maurizio
>>
>>     On 24/04/15 09:49, Jacob Wieland wrote:
>>>     Hello Folks,
>>>
>>>
>>>     I still have the open problem
>>>     https://bugs.openjdk.java.net/browse/JDK-8039262 that the javac
>>>     performance has degraded significantly from 1.6 to 1.7 (and even
>>>     worse to 1.8) in the 64bit versions. Since in our context, we
>>>     are dealing with a lot of generated source1.4 Java input (either
>>>     split into very large files with inner classes or big packages
>>>     with lots of smaller classes), compiler performance is critical
>>>     for our tool and this degradation forces us to continue
>>>     recommending to our customers to use Java 1.6 for large projects
>>>     (as is the norm) as 1.7 and 1.8 are pretty much unusable in this
>>>     respect.
>>>
>>>     Is anyone still working on this issue or is such significant
>>>     performance degradation not a serious issue?
>>>
>>>     My observations so far are:
>>>     - it gets worse the more class files are being compiled/the more
>>>     files reside in the source path
>>>     - cpu usage goes through the roof over all available kernels
>>>     - memory usage is much higher
>>>     - garbage collection seems to be much more active
>>>
>>>     Using -proc:none alleviates the problem slightly for the 1.7
>>>     version, but not for 1.8 (last we tested with jdk1.8.0_31) where
>>>     the performance difference is a factor 5 or more!
>>>
>>>     I can understand that a more advanced compiler has capabilities
>>>     that a previous version does not have and thus sometimes has
>>>     to do more work. But, it should still be possible (especially if
>>>     given the -source 1.4 or -source 1.5 option as we do) to
>>>     optimize it in such a way that unnecessary checks for generics,
>>>     overriding methods, closures, annotations and other newer
>>>     features can be turned off (if they are to blame, which I
>>>     actually doubt from my observations).
>>>
>>>     I would really appreciate your help in this regard and I think
>>>     everyone would benefit from any bugfix you can offer for this.
>>>
>>>     BR, Jacob Wieland
>>>
>>>     -- 
>>>     -- 
>>>     ------------------------------
>>>     -------------------------------------------
>>>     Dr. Jacob Wieland
>>>     Senior Software Engineer
>>>
>>>     Testing Technologies IST GmbH
>>>     Michaelkirchstraße 17/18
>>>     10179 Berlin, Germany
>>>
>>>     Phone +49 30 726 19 19 34        Email wieland at testingtech.com
>>>     <mailto:stanca at testingtech.com>
>>>     Fax +49 30 726 19 19 20      Internet www.testingtech.com
>>>     <http://www.testingtech.com>
>>>     ---------------------------------------------------------------------------------------------------------------
>>>
>>>     -----------------------------------------------------------------------------------------------------------------
>>>
>>>     UPCOMING EVENTS
>>>
>>>     SUBMIT YOUR TOPIC for the UCAAT 2015
>>>     Deadline: May 30, 2015
>>>     ucaat.etsi.org/2015/CallForPresentations.html  <http://ucaat.etsi.org/2015/CallForPresentations.html>
>>>
>>>     Apr 21-23, 2015 | SAE Conference & Exhibition
>>>     Detroit, Michigan, USA
>>>     www.sae.org/congress/  <http://www.sae.org/congress/>
>>>
>>>     Apr 28-30, 2015 | iqnite
>>>     Dusseldorf, Germany
>>>     www.iqnite-conferences.com/de/index.aspx  <http://www.iqnite-conferences.com/de/index.aspx>
>>>     -----------------------------------------------------------------------------------------------------------------
>>>     Geschäftsführung: Theofanis Vassiliou-Gioles, Stephan Pietsch,
>>>     Pete Nicholson Handelsregister HRB 77805 B, Amtsgericht
>>>     Charlottenburg Ust ID Nr.: DE 813 143 070 This email may contain
>>>     confidential and privileged material for the sole use of the
>>>     intended recipient. Any review, use, distribution or disclosure
>>>     by others is strictly prohibited. If you are not the intended
>>>     recipient (or authorized to receive for the recipient), please
>>>     contact the sender by reply email and delete all copies of this
>>>     message.
>>
>
>
>
>
> -- 
> -- 
> ------------------------------
> -------------------------------------------
> Dr. Jacob Wieland
> Senior Software Engineer
>
> Testing Technologies IST GmbH
> Michaelkirchstraße 17/18
> 10179 Berlin, Germany
>
> Phone +49 30 726 19 19 34        Email wieland at testingtech.com 
> <mailto:stanca at testingtech.com>
> Fax +49 30 726 19 19 20        Internet www.testingtech.com 
> <http://www.testingtech.com>
> ---------------------------------------------------------------------------------------------------------------
>
> -----------------------------------------------------------------------------------------------------------------
>
> UPCOMING EVENTS
>
> SUBMIT YOUR TOPIC for the UCAAT 2015
> Deadline: May 30, 2015
> ucaat.etsi.org/2015/CallForPresentations.html  <http://ucaat.etsi.org/2015/CallForPresentations.html>
>
> Apr 21-23, 2015 | SAE Conference & Exhibition
> Detroit, Michigan, USA
> www.sae.org/congress/  <http://www.sae.org/congress/>
>
> Apr 28-30, 2015 | iqnite
> Dusseldorf, Germany
> www.iqnite-conferences.com/de/index.aspx  <http://www.iqnite-conferences.com/de/index.aspx>
> ----------------------------------------------------------------------------------------------------------------- 
> Geschäftsführung: Theofanis Vassiliou-Gioles, Stephan Pietsch, Pete 
> Nicholson Handelsregister HRB 77805 B, Amtsgericht Charlottenburg Ust 
> ID Nr.: DE 813 143 070 This email may contain confidential and 
> privileged material for the sole use of the intended recipient. Any 
> review, use, distribution or disclosure by others is strictly 
> prohibited. If you are not the intended recipient (or authorized to 
> receive for the recipient), please contact the sender by reply email 
> and delete all copies of this message.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/compiler-dev/attachments/20150429/a2ef6e1c/attachment-0001.html>


More information about the compiler-dev mailing list