eclipse-openj9 / openj9-website

openj9-website
24 stars 28 forks source link

Create latest release page for 0.27.0 #294

Closed doveye closed 3 years ago

doveye commented 3 years ago

What's New update for the website, for 0.27 (July 2021)

doveye commented 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 the balanced 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

vijaysun-omr commented 3 years ago

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 ?

vijaysun-omr commented 3 years ago

@zl-wang is it possible/appropriate to mention Power10 features that are enabled for the first time in 0.27 ?

vijaysun-omr commented 3 years ago

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.

vijaysun-omr commented 3 years ago

@0xdaryl are there highlights for AArch64, e.g. arraycopy performance that we should summarize ?

doveye commented 3 years ago

I've updated the text to add the platforms for -XX:[+|-]GlobalLockReservation and items from the numbered list above.

zl-wang commented 3 years ago

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);

vijaysun-omr commented 3 years ago

@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.

zl-wang commented 3 years ago

How about: New POWER10 hardware features have been exploited extensively in this JDK release, including prefixed instructions.

vijaysun-omr commented 3 years ago

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.

zl-wang commented 3 years ago

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.

vijaysun-omr commented 3 years ago

"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 ?

joransiu commented 3 years ago

Or perhaps:

This JDK release transparently exploits new POWER10 hardware, which may generally improve application pathlength and accelerate miscellaneous array and byte operations.

doveye commented 3 years ago

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.

zl-wang commented 3 years ago

@doveye it sounds good.

0xdaryl commented 3 years ago

For AArch64:

AArch64 provides incremental performance improvements in broad workloads through changes in the JIT compiler, including:

doveye commented 3 years ago

Thanks @0xdaryl. I have a few questions:

  1. That's a lot of detailed technical info - do users need to know that level of detail? I'm wondering if we can summarize/simplify further.
  2. Do we mean "AArch64 provides incremental performance improvements..." or "This release provides incremental performance improvements on AArch64..."?
  3. What is meant be "broad workloads"? Do you mean "a variety of workloads" maybe, or "wide-ranging workloads"?

Thanks

0xdaryl commented 3 years ago

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.

doveye commented 3 years ago

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.