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