Closed doveye closed 3 years ago
First draft (0.26 content is live at https://www.eclipse.org/openj9/news). Note: this isn't an exhaustive list of all the changes, just the main ones:
Eclipse OpenJ9 version 0.27.0 released
July 2021
We're pleased to announce the availability of Eclipse OpenJ9 v0.27.0.
This release supports OpenJDK version 8, 11, and 16. For more information about supported platforms and OpenJDK versions, see Supported environments.
In this release, the following new options are added and enabled by default to improve performance:
-XX:[+|-]AdaptiveGCThreading
dynamically adjusts the garbage collection thread count to reduce collection pause times.-Xgc:dynamicBreadthFirstScanOrdering
enables a new scan mode to improve performance of thebalanced
garbage collection policy.Existing option
-XX:[+|-]GlobalLockReservation
(AIX and Linux on Power systems only), which improves the performance of locking and unlocking of Java™ objects, is now also enabled by default.To read more about these and other changes, see the OpenJ9 user documentation.
Other performance highlights
- The performance of method invocation via reflection is improved by reducing stack walking overhead related to access checking associated with that API.
- The JIT compiler includes several incremental throughput improvements related to the warm hotness level and loop handling.
- On AArch64, the JIT compiler provides incremental performance improvements for applications generally, including: reducing Java synchronization overhead, improving array access performance in loops, and increased virtual and JNI method dispatch performance.
- New POWER10 hardware features are exploited to improve application path length and the performance of various array and byte operations.
@vijaysun-omr are there any performance items you'd like added? @pshipton and @DanHeidinga - is there anything else we should add? Thanks
I believe "Existing option -XX:[+|-]GlobalLockReservation, which improves the performance of locking and unlocking of Java™ objects, is now also enabled by default." is true only on the Power platform and if so, it should be stated as such. @zl-wang ?
@zl-wang is it possible/appropriate to mention Power10 features that are enabled for the first time in 0.27 ?
We should probably add:
1) The performance of method invocation via reflection was improved by reducing stack walking overhead related to access checking associated with that API
2) Several incremental throughput improvements relevant to the warm hotness level and loop handling were implemented in the JIT compiler
The two GC highlights that you mentioned earlier are also performance enhancements.
@0xdaryl are there highlights for AArch64, e.g. arraycopy performance that we should summarize ?
I've updated the text to add the platforms for -XX:[+|-]GlobalLockReservation and items from the numbered list above.
is it possible/appropriate to mention Power10 features that are enabled for the first time in 0.27 ?
Sure. Describing P10 (without disclosing its GA plan) is no problem. Major P10 features enabled: 1) Exploiting prefixed instructions; 2) PC-relative addressing (reducing path-length); 3) Better arrayCopy minimizing unpredictable branches (due to vector load/store with length instructions); 4) No requirement for temporary trampolines (i.e. existing trampolines can be reused in place); 5) Other new instructions (e.g. in-register byte reversal);
@zl-wang thanks for the Power10 information. We may need to compress all that down to a very high level and a single bullet point that Esther can use. If you could make an attempt at that, we can also give our opinion if we think we can adequately express it.
How about: New POWER10 hardware features have been exploited extensively in this JDK release, including prefixed instructions.
Thanks @zl-wang that is much better. Perhaps you can rephrase the "including prefixed instructions" phrase in terms of what an end user of OpenJ9 might experience and be interested in, e.g. "better array performance" (if that is true).
Once we agree on this single bullet, we can let the others with input for the release info (Esther/Peter/Dan) to also chime in on whether they would like the short single bullet version for this or the more detailed list from your earlier comment.
down to this then: New POWER10 hardware features have been exploited extensively in this JDK release, and better performance of certain applications (e.g. arrayCopy) can be expected.
"New POWER10 hardware features have been exploited extensively in this JDK release, and as a result, performance of certain array operations (e.g. copying a certain number of bytes) should be improved on POWER10"...@zl-wang are you okay with that ?
Or perhaps:
This JDK release transparently exploits new POWER10 hardware, which may generally improve application pathlength and accelerate miscellaneous array and byte operations.
I tweaked again to
New POWER10 hardware features are exploited to improve application path length and the performance of various array and byte operations.
Hope this is ok.
@doveye it sounds good.
For AArch64:
AArch64 provides incremental performance improvements in broad workloads through changes in the JIT compiler, including:
Thanks @0xdaryl. I have a few questions:
Thanks
1) If you don't want to expose too many details we could say something like this instead:
The AArch64 OpenJ9 JVM provides incremental performance improvements in general applications through changes in the JIT compiler. This includes reducing Java synchronization overhead, improving array access performance in loops, and increased virtual and JNI method dispatch performance.
2) Yes. Re-worded.
3) Yes, I mean a variety of workloads. Re-worded.
Thanks @0xdaryl. I've put that update after the other bullet point about the JIT compiler and reworded it a bit to make it more consistent.
What's New update for the website, for 0.27 (July 2021)