java. Есть ли свет в конце тоннеля
TRANSCRIPT
JAVA
Alexey Diomin, [email protected]
Optimist vs Pessimist
Agenda
General JIT GC Mix
Death
History
History
GC
History
GC1. G1
History
GC1. G1 InvokeDynamic
History
GC1. G1 InvokeDynamic1. Lambda
History
GC1. G1 InvokeDynamic1. Lambda DefaultMethods
History
GC1. G1 InvokeDynamic1. Lambda DefaultMethods1. Streams
Invisible History
JIT: TieredCompilation
Invisible History
JIT: TieredCompilation GC: CMS concurrent initial mark
Invisible History
JIT: TieredCompilation GC: CMS concurrent initial mark Misc: speedup MethodHandles &
InvokeDynamic
Graal
Maxin
Erlang without OS (2013)
Maxin
Erlang without OS (2013) Java project GuestVM (2008)
Graal
Graal
Graal
Research VM JIT (inlining) Thruffle (R/Ruby/C)
Graal
Research VM JIT (inlining) Thruffle (R/Ruby/C)
JIT magic =) (gpu/cpu/etc)
Graal
Research VM JIT (inlining) Thruffle (R/Ruby/C)
JIT magic =) (gpu/cpu/etc)
status: JEP 243: Java-Level JVM Compiler Interface
Valhalla
Valhalla
Value types Generics
Valhalla
Value types Generics
Remove Unsafe usage from atomic package (VarHandle)
Valhalla
Sumatra
Sumatra
GPU computing1. Aparapi (start from OpenCL, now lambda
& HSA)2. Array 2.0
Sumatra
Panama
Panama
We are improving and enriching the connections between the Java virtual machine and well-defined but “foreign” (non-Java) APIs, including many interfaces commonly used by C programmers.
Panama
We are improving and enriching the connections between the Java virtual machine and well-defined but “foreign” (non-Java) APIs, including many interfaces commonly used by C programmers.
JEP 191: Foreign Function Interface. JDK 10 =(
https://github.com/jnr/jnr-ffi
Shenandoah
Shenandoah
Ultra-low pause-time GC (100G+ less 10ms)
Concurrent evacuations
JEP 189: Shenandoah: An Ultra-Low-Pause-Time Garbage Collector
Sponsor RedHat
Azul ReadyNow!
JDK 9
http://openjdk.java.net/projects/jdk9/
Final
Q&A