RFR: JDK-8246751 Mac OS build settings should use -O3
Sergey Bylokhov
Sergey.Bylokhov at oracle.com
Mon Jun 8 21:25:28 UTC 2020
On 6/8/20 2:17 pm, Claes Redestad wrote:
> Not too similar, since that involves a compiler bug that basically
> forced applying the -O1 flag to a critical piece of the runtime.>
> Obviously there needs to be a pragmatic approach when hitting a compiler
> bug like the one discussed in that thread, with the goal of removing the
> special-case as soon as possible.
I meant the point raised by the Gerard
https://mail.openjdk.java.net/pipermail/hotspot-dev/2020-June/042021.html
The "-Os (the default for most hotspot files) takes 158s"
is not true anymore.
>
> /Claes
>
>>
>>>
>>> /Magnus
>>>>
>>>> On 6/8/20 8:55 am, Magnus Ihse Bursie wrote:
>>>>> From Jim's bug report:
>>>>>
>>>>> "Mac OS X should use -O3 optimization level to be consistent with other platforms and benefit Mac OS X java with the same performance levels as other platforms.
>>>>>
>>>>> Mac OS X has used -Os level optimization since management of the platform JDK was handed over from Apple. This level of optimization was Apple's policy, not OpenJDK's. The policy was established in a time when memory was tight (I was there at the time.) Since then other platforms have moved on, making the decision to target speed over disk space. Specifically, using -O3 level optimization.
>>>>>
>>>>> I've personally seen 20-30% improvement in performance in C/C++ applications using -O3 over -Os. But, of course, the performance team should verify the affect on the JDK.
>>>>>
>>>>> A 11% real time improvement can be seen with a rough HelloWord compile/run."
>>>>>
>>>>> I discussed this with Claes, our performance guru, and he agreed that it is low risk enough that we can push this for JDK 15.
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8246751
>>>>> WebRev: http://cr.openjdk.java.net/~ihse/JDK-8246751-macos-optimize-O3/webrev.01
>>>>>
>>>>> /Magnus
>>>>
>>>>
>>>
>>
>>
--
Best regards, Sergey.
More information about the build-dev
mailing list