4. 230: Microbenchmark Suite
Summary:
Add a basic suite of microbenchmarks to the JDK source code, and make it easy for
developers to run existing microbenchmarks and create new ones.
Based on Java Microbenchmark Harness (JMH 1.12+) .
5. 334: JVM Constants API
Summary:
Introduce an API to model nominal descriptions of key class-file and run-time
artifacts, in particular constants that are loadable from the constant pool.
Bytecode manipulation libraries and tools have a single, standard way to describe
loadable constants now.
This JEP is related to JEP 303 (Intrinsics for the LDC and INVOKEDYNAMIC
Instructions).
7. 325: Switch Expressions
Summary:
Extend the switch statement so that it can be used as either a statement or an
expression, and that both forms can use either a "traditional" or "simplified" scoping
and control flow behavior.
These changes will simplify everyday coding, and also prepare the way for the use of
pattern matching (JEP 305) in switch.
8. 341: Default CDS Archives
Summary:
Enhance the JDK build process to generate a class data-sharing (CDS) archive, using
the default class list, on 64-bit platforms.
Improve out-of-the-box startup time, eliminate the need for users to run -Xshare:dump
to benefit from CDS.
10. 344: Abortable Mixed Collections for G1
Summary:
Make G1 mixed collections abortable if they might exceed the pause target.
If G1 discovers that the collection set selection heuristics repeatedly select the wrong
number of regions, switch to a more incremental way of doing mixed collections: split
the collection set into two parts, a mandatory and an optional part. After G1 finishes
collecting the mandatory part, G1 starts collecting the optional part at a much more
granular level, if there is time left.
11. 346: Promptly Return Unused Committed Memory from G1
Summary:
Enhance the G1 garbage collector to automatically return Java heap memory to the
operating system when idle.
Currently the G1 garbage collector may not return committed Java heap memory to
the operating system in a timely manner. This behavior is particularly disadvantageous
in container environments where resources are paid by use. If the VM were able to
detect phases of Java heap under-utilization ("idle" phases), and automatically reduce
its heap usage during that time, both would benefit.
13. 189: Shenandoah: A Low-Pause-Time Garbage Collector
Summary:
Add a new garbage collection (GC) algorithm named Shenandoah which reduces GC
pause times by doing evacuation work concurrently with the running Java threads.
Pause times with Shenandoah are independent of heap size, meaning you will have the
same consistent pause times whether your heap is 200 MB or 200 GB.
15. 340: One AArch64 Port, Not Two
Summary:
Remove all of the sources related to the arm64 port while retaining the 32-bit ARM
port and the 64-bit aarch64 port.