JDK 10 EA 版特性速览

今天收到一封邮件组的邮件,是关于JDK 10 First Release Candidate的, JDK10 b43版将作为第一个JDK10的RC版。 b43版特性包括: 286: Local-Variable Type Inference 296: Consolidate the JDK Forest into a Single Repository 304: Garbage-Collector Interface 307: Parallel Full GC for ...

今天收到一封邮件组的邮件,是关于JDK 10 First Release Candidate的, JDK10 b43版将作为第一个JDK10的RC版。

b43版特性包括:

286: Local-Variable Type Inference
296: Consolidate the JDK Forest into a Single Repository
304: Garbage-Collector Interface
307: Parallel Full GC for G1
310: Application Class-Data Sharing
312: Thread-Local Handshakes
313: Remove the Native-Header Generation Tool (javah)
314: Additional Unicode Language-Tag Extensions
316: Heap Allocation on Alternative Memory Devices
317: Experimental Java-Based JIT Compiler
319: Root Certificates
322: Time-Based Release Versioning

挑了感兴趣的看了下,包括以下:

JEP 307: Parallel Full GC for G1

通过使用并行full GC来改进G1最坏情况下的GC延迟。虽然G1式设计成避免full GC的,但有些情况下回收器会降级成full GC。改进主要包括将mark-sweep-compact从单线程变成与Young和Mixed回收器相同的线程数。

JEP 310: Application Class-Data Sharing

主要改进启动时间与内存空间占用。

主要相关的技术有在JDK5时引进的Class-Data Sharing(简称CDS),其允许一组类可以被预先放在一个共享的归档文件中以便之后在运行时直接映射到内存中以减少启动时间。

其中的成果例子:

  • 包含6个JVM的Java EE应用服务器处理一个13G内存的数据时节省了340M内存。

  • JEdit benchmark的启动时间节省了20-30%。

JEP 317: Experimental Java-Based JIT Compiler

提供了实验性质的基于java的JIT编译器,Graal,可以在Linux/x64的平台上使用。

现在此更新不是用来对标现存的JIT编译器的。

用以下参数开启

-XX:+UnlockExperimentalVMOptions -XX:+U