20 Years of Java
Total Page:16
File Type:pdf, Size:1020Kb
20 years of Java Vladimir Ivanov HotSpot JVM Compile r Twitter: @iwan0www Oracle Corp. OpenJDK: vlivanov 1 28.11.2015 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 20 years of Java (The Platform) Vladimir Ivanov HotSpot JVM Compile r Twitter: @iwan0www Oracle Corp. OpenJDK: vlivanov 2 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Safe Harbor Statement The preceding is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. 3 Copyright © 2015, Oracle and/or its affiliates. All rights reserved About me Joined Sun Microsystems (SPBDC) to work JDK 1.0 on HotSpot JVM Now 1996 2002 2005 2010 2015 Wrote my first Became part of program in Java. Oracle Corp. after acquisition 4 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: Project Green 5 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: *7 (StarSeven) Oak programming language 6 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1991: *7 (StarSeven) Duke 7 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1994: WebRunner/HotJava browser 8 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1995: First release: 1.0a2 9 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Intel Pentium P54CS, 0.35µm, 200MHz, 66MHz FSB 10 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Sun Enterprise 10000 64 UltraSPARC II CPUs, 400 MHz, 16x4GB RAM 11 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1996: JDK 1.0 January, 23 § 6 packages § # of classes – java.applet – java/ 225 – java.awt – sun/ 379 – java.io – java.lang – java.net – java.util 12 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1996: picoJava 13 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1997: JDK 1.1 February, 19 14 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1998: J2SE 1.2 December, 8 15 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1999: J2SE, J2ME, J2EE 16 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1999: J2SE, J2ME, J2EE 17 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2000: J2SE 1.3 May, 8 18 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 1998: JCP 19 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2002 February, 6 20 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Java Releases Inner classes JavaBeans HotSpot JVM JDBC JNDI RMI Java Sound Reflection JVMDI JNI JVMPI First release JDK 1.1 January, 23 December, 8 J2SE 1.3 February, 6 1995 1996 1997 1998 2000 2002 March February, 19 May, 8 JDK 1.0 J2SE 1.2 J2SE 1.4 Swing AWT Regular Expressions JIT compiler Network IPv6 support Java Plug-in I/O Logging Collections XML, XSLT Java Web Start 21 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2004: J2SE 5.0 September, 30 22 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2004: J2SE 5.0 September, 30 23 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2006: Java SE 6 December, 11 § Scripting Language Support (JSR 223) § Java Compiler API (JSR 199) § Support for pluggable annotations (JSR 269) § Numerous performance improvements – C1: new linear register allocator – C1: IR in SSA form 24 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Java SE 6u HotSpot Express § Escape analysis in C2 – 6u23 § NUMA GC Enhancements – Java SE 6u2 § Compressed OOPs – 6u23 § Tiered compilation 25 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2007 May, 8 26 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2007: May JavaFX 1.0 on December, 2008 27 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 28 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2010 29 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2011: Java SE 7 July, 28 § JVM support for dynamic languages (JSR 292) § Small language changes – e.g. strings in switch, try-with-resources § New file I/O library (defined by JSR 203) 30 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2014: Java SE 8 March, 18 § JSR 335: Language-level support for lambda expressions § JSR 223: Project Nashorn, a JavaScript runtime § JSR 308: Annotation on Java Types § JSR 310: Date and Time API § JEP 122: Remove the permanent generation 31 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2014: Java SE 8 March, 18 32 Copyright © 2015, Oracle and/or its affiliates. All rights reserved 2016: Java SE 9 ETA: September, 22 Scalability Performance Project Jigsaw Security http://openjdk.java.net 33 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Scalability 34 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Java 8 tools JDK tools.jaxws tools.base JRE corba devtools tools.jre crypto compact3 jaxws compiler rowset compact2 xmldsig desktop rmi javafx naming jaxp jdbc httpserver auth sctp compact1 prefs jx.annotations instrument 54MB 30 16 11 nashorn 35 4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Performance rmic xml.ws hotspot.agent javadoc xml.bind jconsole jcmd jdi smartcardio crypto.ec compiler se aBach crypto.pkcs11 xml.ws hBpserver compact3 jvmstat hprof.agent jdwp.agent xml.soap corba instrument sql.rowset naming.rmi localedata xml.bind security.acl naming naming sctp compact2 ac:vaon compiler management zipfs sql security.auth desktop prefs compact1 rmi security.jgss scripting. annota:ons.common xml.crypto xml logging scrip:ng security.sasl nashorn base charsets 36 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw tools tools.jaxws tools.base cosnaming management.iiop corba devtools tools.jre crypto management kerberos jaxws compiler rowset jta xmldsig desktop rmi javafx naming jaxp jdbc logging httpserver tls auth 4 Copyright © 2014, Oracle and/or its affiliates.sctp All rights reserved. prefs jx.annotations instrument base script nashorn 37 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw tools tools.jaxws tools.base cosnaming management.iiop corba devtools tools.jre crypto management kerberos jaxws compiler rowset jta xmldsig desktop rmi javafx naming jaxp jdbc logging httpserver tls auth 4 Copyright © 2014, Oracle and/or its affiliates.sctp All rights reserved. prefs jx.annotations instrument base script nashorn 38 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw tools tools.jaxws tools.base cosnaming management.iiop corba devtools tools.jre crypto management kerberos jaxws compiler rowset jta xmldsig desktop rmi javafx naming jaxp jdbc logging httpserver tls auth 4 Copyright © 2014, Oracle and/or its affiliates.sctp All rights reserved. prefs jx.annotations instrument base script nashorn 39 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw crypto javafx 4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. base script nashorn 40 Copyright © 2015, Oracle and/or its affiliates. All rights reserved .jmod *.class .jar *.jar $JRE/bin/java *.jmod jlink /lib/... JVM image Fat binary 419 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements rt.jar crypto nashorn.jar, jfxrt.jar, sunjce_provider.jar javafx base script nashorn myapp.jar 42 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn 43 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn 44 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn § Aggressive inlining 45 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn § Aggressive inlining § Ahead-Of-Time compilation 46 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn § Aggressive inlining § Ahead-Of-Time compilation § JVM-specific memory images – e.g. Application Class Data Sharing (AppCDS) 47 Copyright © 2015, Oracle and/or its affiliates. All rights reserved Project Jigsaw Opportunities for performance improvements crypto § Improved class loading architecture javafx – fast class lookup base script nashorn