SlideShare a Scribd company logo
1 of 46
Download to read offline
1   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
CON7357
  Why Should I Switch to Java SE 7?
Dave Keenan, Java Performance Architect, Oracle
Staffan Friberg, JVM Product Manager, Oracle




  2   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
The following 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 © 2012, Oracle and/or its affiliates. All rights reserved.
Agenda


        §  Mature and Recommended
        §  New Features
        §  Performance Benefits
        §  Backwards Compatibility
        §  Summary



4   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Mature and Recommended




5   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Deployed and Used
        Fast and increasing uptake


         §  23% of the respondents to ZeroTurnaround’s study use JDK 7[1]
                    –  Less than 6 months after Java SE 7 was released!




         §  Jelastic’s latest report show 79% of the
               deployments in their Java PaaS use JDK 7[2]



           1)  http://zeroturnaround.com/labs/developer-productivity-report-2012-java-tools-tech-devs-and-data

           2)  http://blog.jelastic.com/2012/09/12/software-stack-market-share-august-2012


6   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Mature
        One year since GA


         §  Tried and tested with a huge set of applications and libraries
                    –  Java and OpenJDK communities
                    –  Java ISVs
                    –  Oracle’s Java products


         §  7 update releases
                    –  Bugs and security fixes
                    –  Performance enhancements
                    –  New features

7   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Certified and Recommended


         §  Certified and supported by all major
                    –  IDEs and development tools
                    –  Java EE application servers


         §  Recommended JDK
                    –  New deployments – both server and client applications


         §  Auto-update coming soon
                    –  Already default JRE on java.com

8   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Certified Platforms
        Oracle JDK 7


         §  Windows – x86 and x64


         §  Linux – x86, x64 and ARM v6 & v7


         §  Solaris – x86, x64, SPARC and SPARC v9


         §  Mac OS X – x64


                                                                           http://www.oracle.com/technetwork/java/javase/config-417990.html



9   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Support
         Free Public Updates


          §  Java SE 6
                     –  Public updates of Java SE 6 ending in February 2013
                     –  Updates available via support contract

          §  Java SE 7
                     –  Public updates available until at least July 2014

          §  Java SE public updates
                       a)  3 years after it has been made generally available
                       b)  1 year after a subsequent major release
                       c)         6 months after a subsequent major release has become the default JRE
                                                                            http://www.oracle.com/technetwork/java/eol-135779.html

10   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java SE 7 Implementations


          §  OpenJDK
                     –  Most of our development work is done in OpenJDK
          §  Java SE Licensees
                     –  SAP, HP, Fujitsu
          §  IBM
                     –  New JVM features
                                  §  Balanced GC
                     –  Optimized class libraries


11   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
New Features




12   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Development
         Focusing Resources


          §  Feature and performance development is targeted for
                     –  JDK 7 update releases
                     –  JDK 8


          §  JDK 6 not completely frozen
                     –  Security and bug fixes are always back-ported




13   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Serviceability Features
         JRockit / HotSpot Convergence


          §  Java Mission Control
                     –  Monitor, manage, profile


          §  Java Flight Recorder
                     –  Profiling, problem analysis, debugging
                     –  Partial implementation in JDK 7
                                  §  Oracle Fusion Middleware probes only




14   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java Diagnostic Commands
         JDK Introspection


          §  Complete tool chain
                     –  Framework for easy implementation and integration
                     –  Command line tool, jcmd


          §  jcmd
                     –  List running Java processes


          §  jcmd <pid> help
                     –  List all available commands, currently ~15 different commands

15   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Diagnostic Commands
         Class Histogram


          jcmd <pid> GC.class_histogram
                  num                 #instances                             #bytes   class name
                ----------------------------------------------
                       1:                           5466                    9460256   [I
                       2:                         54844                     7491712   <constMethodKlass>
                       3:                         54844                     7474144   <methodKlass>
                       4:                           4722                    5887584   <constantPoolKlass>
                       5:                           4722                    4133992   <instanceKlassKlass>
                       6:                           4091                    3663584   <constantPoolCacheKlass>
                       7:                         27380                     2352496   [C
                       8:                         12229                     2181656   [B
                       9:                         27066                      649584   java.lang.String
                     10:                            5082                     622520   java.lang.Class
                       ...

16   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
G1 – Garbage First
         Recommended Use Cases


          §  Supported for production use since 7u4
          §  Large heaps with GC latency requirements
                     –  Typically ~6GB or larger heaps
                     –  Stable and predictable GC latencies below 0.5 seconds
          §  Applications that have
                     –  more than 50% live data on the heap
                     –  varied object allocation rate
                     –  undesired long GC or compaction pauses (greater than 0.5s)


17   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
G1 – Garbage First
         Performance

                                                                            Typical Java EE Application
                                  4.0
                                  3.5
                                  3.0
                  GC Length (s)




                                  2.5
                                  2.0                                                                         G1

                                  1.5                                                                         CMS

                                  1.0                                                                         Parallel

                                  0.5
                                  0.0
                                                N-4                          N-3        N-2         N-1   N
                                                                                    5 Longest GCs




18   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
G1 – Garbage First
         Performance

                                              Typical Java EE Application with Fragmentation
                                  35

                                  30

                                  25
                  GC Length (s)




                                  20
                                                                                                            G1
                                  15
                                                                                                            CMS
                                  10                                                                        Parallel
                                   5

                                   0
                                               N-4                          N-3       N-2         N-1   N
                                                                                  5 Longest GCs




19   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Runtime Compiler Improvements
         Performance


     §  TieredCompilation
               –  Interpreter -> Client Compiler (C1) -> Highly Optimized Server Compiler (C2)
               –  Not on by default


     §  Tuning challenges
               –  Current heuristics are insufficient
               –  Combined C1+C2 compiled code puts pressure on ReservedCodeCache




20   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Sockets Direct Protocol (SDP)
         Infiniband Support


          §  Transparent support for IB networks using regular Sockets
                     –  java.net and NIO


          §  SDP support is disabled by default
                     –  Create an SDP configuration file.
                     –  Set the system property that specifies the location of the configuration file.


          §  http://docs.oracle.com/javase/tutorial/sdp/index.html


21   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Benefits




22   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         Java Class Libraries


          §  Avoid Contention in Date
                     –  Changed from HashTable to ConcurrentHashMap


          §  BigDecimal improvements, CR 7013110


          §  Copy elision in many of the sunpkcs JNI calls, CR 6988081




23   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         Java Class Libraries


          §  Crypto configuration file updates, CR 7036252
                     –  Improves out of the box crypto experience
          §  User land crypto for SPARC T4, CR 7013347, (uses T4 crypto
                instructions), targeted for 7u2
                     –  Much faster crypto on SPARC T4 and later
          §  Adler32 & CRC32 to leverage T-series hardware CRC, CR 7039848,
                possibly implement similar intrinsic approach being implemented for
                “user land crypto”, targeted for 7u2


24   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         Java Class Libraries


     §  String(byte[] bytes, String csn) and String.getBytes(String csn)
               –  Optimized String char[]        byte[] conversion
               –  2 – 3x performance improvement in micro-benchmarks with small Strings


     §  Java Concurrency APIs (JSR 166y)
               –  New improvements in JDK 7
               –  Fork-join Framework




25   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         JSR 166y: Fork Join Framework


          §  Goal is to take advantage of multiple processor
          §  Designed for task that can be broken down into smaller pieces
                     –  Eg. Fibonacci number fib(10) = fib(9) + fib(8)
          §  Typical algorithm that uses fork join
if I can manage the task
   perform the task
else
   fork task into x number of smaller/similar task
   join the results

26   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         HotSpot JVM


     §  Updated native compilers
               –  gcc 4.2
               –  Oracle Studio


     §  -XX:+UseNUMA on Java 7
               –  Linux kernel 2.6.19 or later
               –  glibc 2.6.1




27   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         HotSpot JVM: Partial Perm Gen Removal


     §  Partial Permanent Generation removal in JDK 7
               –  Interned Strings moved to Java heap
     §  First step: Full removal in JDK 8
     §  My be necessary to adjust GC tuning
               –  Interned Strings now in heap
               –  Applications with high GC time
               –  Applications with high interned String count
               –  Larger heap size may be needed


28   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         HotSpot JVM: Internal JVM Data Structures


          §  Interned Strings
          §  Distinct class names loaded
          §  Hashtable implementation
                     –  Default table size is 1009
                     –  Significant performance impact if more than 1009
          §  Increase sizes if needed:
                     –  Interned Strings: -XX:StringTableSize=n
                     –  Distinct Class names:-XX:+UnlockExperimentalVMOptions
                          -XX:PredictedClassLoadCount=#

29   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         Client Library Updates


          §  Nimbus Look and Feel
          §  Platform APIs for shaped and translucent windows
          §  JLayer (formerly from Swing labs)
          §  Optimized 2D rendering
          §  Improved Xrender support on Linux




30   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         JDBC 4.1 Updates


     §  Allow Connection, ResultSet and Statement objects to be used
          with the try-with-resources statement
               –  Implement AutoCloseable interface
     §  RowSetFactory and RowSetProvider classes added to
          javax.sql.rowset package




31   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         XML APIs Updates


     §  JAXP 1.4.5 (Parsing)
               –  Bug fixes, conformance, security, performance
               –  StAX upgraded to version 1.2
     §  JAXB 2.2.3 (Binding)
               –  Minor changes to XMLElement interface
     §  JAX-WS 2.2.4 (Web Services)
               –  Minor changes
               –  Support for Async Servlet Transport using Servlet 3.0 API


32   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Performance Features
         Java Class Libraries – Asynchronous I/O


     §  java.io a short history
               –  Pre JDK 1.4 – blocking I/O
               –  JDK 1.4 onwards – non blocking I/O, memory mapped files, file lock,
                  channels and buffers
               –  JDK 7 – asynchronous I/O
     §  Provides asynchronous I/O to both sockets and files
               –  Take advantage of operating systems I/O facilities where available




33   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java 7 Performance
                              SPECjbb2005 throughout Java 7 Development Builds
                       3000000	



                       2500000	

SPECjbb2005 bops 	





                       2000000	



                       1500000	



                       1000000	



                        500000	



                                 0	

                                        10	

          20	

             30	

              40	

   50	

   60	

        80	

       90	

   100	

   110	

   120	

   132	

   138	

                                                                                                                    JDK 7 Build	

                                    •  4x2.4GHz WSM-EX, Oracle Solaris 11 Express snv_156 X86
                                    •  2.2x Improvement through JDK 7 development
                  34      Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java 7 Performance
                                        SPECjbb2005 Improvement through JDK optimization

                                 300%	

Normalized SPECjbb2005 bops	





                                 250%	



                                 200%	



                                 150%	



                                 100%	



                                  50%	



                                   0%	

                                                   JDK 5_07	

                      JDK 6	

               JDK 6_02	

   JDK 6_05-P	

   JDK 6_06-P	

   JDK 6_14-P	

   JDK 6_21-P	

   JDK 6_25	


                                                                                                                               JDK Releases	


                                   •       2x3.33GHz WSM-EP-B1, Windows 2008 Server Enterprise
                                   •       2.5x performance improvement over the last three years
                           35       Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java 7 Performance
                  SPECjbb2005 Improvement through JDK optimization

                                        1600%	

       Normalized SPECjbb2005 bops	




                                        1400%	


                                        1200%	


                                        1000%	


                                         800%	


                                         600%	


                                         400%	


                                         200%	


                                            0%	

                                                    X5160 (JDK 5_07)	

     X5355 (JDK6_02)	

   X5460 (JDK 6_06-P)	

   X5570 (JDK 6_14-P)	

   X5680 (JDK 6_21-P)	


                                                                                      Intel CPU Release + Optimized JDK	


     •  14x HW + SW improvement over 5 Intel CPU Releases

36   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java 7 Performance
         Competitive Landscape


          §  SPECjbb2005
                     –  JDK 7 (IBM J9) is current 4-CPU Performance leader
          §  SPECjEnterprise2010
                     –  JDK 7 (Oracle HotSpot JVM) is current performance leader on x86_64
          §  SPECpower_ssj2008
                     –  JDK 7 (IBM J9) is amongst the power/performance leaders




37   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Java 7 Performance
         Real World Performance


          §  JDK 7 Update 4 and Later
                     –  Faster than Java 6 for 97% of Applications tested
                     –  Faster than JRockit for 96% of Applications tested




38   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Backwards Compatibility




39   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Backward Compatibility


          §  Source compatibility – old Java source code continues to compile
          §  Binary compatibility – old Java class files continue to link
          §  Behavioral compatibility – execution generates the same result


          §  Java SE 7 and JDK 7 Compatibility
                     –  http://www.oracle.com/technetwork/java/javase/compatibility-417013.html




40   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Heap Retuning


          §  First iteration of PermGen removal
                     –  Reduce memory usage in PermGen
                     –  Interned and final Strings moved to regular heap
                     –  Impact: Fine tuned PermGen and Heap sizes might not be optimal




41   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Main Pitfalls
         What people have experienced


          §  More stringent bytecode verifier for Java SE 7 class files
                     –  Mainly an issue when doing bytecode modification
                     –  Most applications already updated to generate correct code
                     –  Work around: -XX:-UseSplitVerifier


          §  Order of methods returned from getMethods() changed
                     –  Was always specified to be unspecified
                     –  Most affected applications already updated
                     –  Work around: None

42   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Summary




43   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Summary
         Why Should I Switch to Java SE 7?


          §  Mature and proven release


          §  Continued free public updates


          §  Several new features and performance improvements


          §  Recommended and fully supported release




44   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
Final Comment
         After Updating to Java SE 7


          §  Now when you are running Java SE 7,
                why not take a look at the new language features

          §  A sample of the sessions this year
                     –      TUT4629 – JDK 7 in Action: Using New Core Platform Features in Real Code, Joe Darcy
                     –      HOL2846 – The Power of Java 7 NIO.2 by Example, Mohamed Taman
                     –      CON5357 – Exercising Java 7 Features in Enterprise Applications While Avoiding Pitfalls, Anil Kumar
                     –      CON7236 – Advanced JVM Tuning, Dave Keenan


          §  and in the evenings check out last years sessions…
                     –      http://www.parleys.com/#st=4&id=102979

45   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
46   Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

More Related Content

What's hot

Visualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RVisualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RPoonam Bajaj Parhar
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011Arun Gupta
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG sessionMani Sarkar
 
Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0Arun Gupta
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudArun Gupta
 
Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Poonam Bajaj Parhar
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaTakashi Ito
 
Troubleshooting Native Memory Leaks in Java Applications
Troubleshooting Native Memory Leaks in Java ApplicationsTroubleshooting Native Memory Leaks in Java Applications
Troubleshooting Native Memory Leaks in Java ApplicationsPoonam Bajaj Parhar
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the CloudArun Gupta
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overviewsbobde
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of JavaHeather VanCura
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Shreedhar Ganapathy
 
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Simon Ritter
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9C4Media
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Arun Gupta
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Arun Gupta
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGMarakana Inc.
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nationArun Gupta
 

What's hot (20)

Visualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with RVisualizing and Analyzing GC Logs with R
Visualizing and Analyzing GC Logs with R
 
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
OSGi-enabled Java EE Applications using GlassFish at JCertif 2011
 
Java 9 / Jigsaw - AJUG/VJUG session
Java 9 / Jigsaw - AJUG/VJUG  sessionJava 9 / Jigsaw - AJUG/VJUG  session
Java 9 / Jigsaw - AJUG/VJUG session
 
Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0Java Summit Chennai: JAX-RS 2.0
Java Summit Chennai: JAX-RS 2.0
 
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the CloudTDC 2011: The Java EE 7 Platform: Developing for the Cloud
TDC 2011: The Java EE 7 Platform: Developing for the Cloud
 
Java EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolioJava EE 6 and GlassFish portfolio
Java EE 6 and GlassFish portfolio
 
Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9
 
JavaOne2015報告会 in Okinawa
JavaOne2015報告会 in OkinawaJavaOne2015報告会 in Okinawa
JavaOne2015報告会 in Okinawa
 
Troubleshooting Native Memory Leaks in Java Applications
Troubleshooting Native Memory Leaks in Java ApplicationsTroubleshooting Native Memory Leaks in Java Applications
Troubleshooting Native Memory Leaks in Java Applications
 
Running your Java EE applications in the Cloud
Running your Java EE applications in the CloudRunning your Java EE applications in the Cloud
Running your Java EE applications in the Cloud
 
Sun Java EE 6 Overview
Sun Java EE 6 OverviewSun Java EE 6 Overview
Sun Java EE 6 Overview
 
JCP & The Future of Java
JCP & The Future of JavaJCP & The Future of Java
JCP & The Future of Java
 
Java EE 6 Component Model Explained
Java EE 6 Component Model Explained Java EE 6 Component Model Explained
Java EE 6 Component Model Explained
 
Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
 
Migrating Speedment to Java 9
Migrating Speedment to Java 9Migrating Speedment to Java 9
Migrating Speedment to Java 9
 
Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3Java EE 6 & GlassFish 3
Java EE 6 & GlassFish 3
 
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
Java EE 6 & GlassFish 3: Light-weight, Extensible, and Powerful @ Silicon Val...
 
Troubleshooting Java HotSpot VM
Troubleshooting Java HotSpot VMTroubleshooting Java HotSpot VM
Troubleshooting Java HotSpot VM
 
Overview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUGOverview of Java EE 6 by Roberto Chinnici at SFJUG
Overview of Java EE 6 by Roberto Chinnici at SFJUG
 
5050 dev nation
5050 dev nation5050 dev nation
5050 dev nation
 

Viewers also liked

Viewers also liked (7)

Best Of Jdk 7
Best Of Jdk 7Best Of Jdk 7
Best Of Jdk 7
 
Java 7 + 8 new features
Java 7 + 8 new featuresJava 7 + 8 new features
Java 7 + 8 new features
 
Java 7 new features
Java 7 new featuresJava 7 new features
Java 7 new features
 
Java 7 New Features
Java 7 New FeaturesJava 7 New Features
Java 7 New Features
 
55 New Features in Java 7
55 New Features in Java 755 New Features in Java 7
55 New Features in Java 7
 
C++ Programming Language
C++ Programming Language C++ Programming Language
C++ Programming Language
 
Java 7 new features
Java 7 new featuresJava 7 new features
Java 7 new features
 

Similar to Why should i switch to Java SE 7

JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKWolfgang Weigend
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing worldAlexey Fyodorov
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web IntegrationKazuchika Sekiya
 
Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001jucaab
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Robert Scholte
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVMDiagnosing Your Application on the JVM
Diagnosing Your Application on the JVMStaffan Larsen
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018CodeOps Technologies LLP
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishArun Gupta
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Max Andersen
 

Similar to Why should i switch to Java SE 7 (20)

JavaOne Update zur Java Plattform
JavaOne Update zur Java PlattformJavaOne Update zur Java Plattform
JavaOne Update zur Java Plattform
 
JDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDKJDK 8 and JDK 8 Updates in OpenJDK
JDK 8 and JDK 8 Updates in OpenJDK
 
Java: how to thrive in the changing world
Java: how to thrive in the changing worldJava: how to thrive in the changing world
Java: how to thrive in the changing world
 
JDK 10 Java Module System
JDK 10 Java Module SystemJDK 10 Java Module System
JDK 10 Java Module System
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration[English version] JavaFX and Web Integration
[English version] JavaFX and Web Integration
 
Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001Ebs troubleshooting con9019_pdf_9019_0001
Ebs troubleshooting con9019_pdf_9019_0001
 
Java Cloud and Container Ready
Java Cloud and Container ReadyJava Cloud and Container Ready
Java Cloud and Container Ready
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
Java 2012 conference keynote - Java Strategy & Roadmap - WebLogic & GlassFish...
 
Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)Java 9 and the impact on Maven Projects (JavaOne 2016)
Java 9 and the impact on Maven Projects (JavaOne 2016)
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVMDiagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
 
Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018Java is Container Ready - Vaibhav - Container Conference 2018
Java is Container Ready - Vaibhav - Container Conference 2018
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFishBatch Applications for Java Platform 1.0: Java EE 7 and GlassFish
Batch Applications for Java Platform 1.0: Java EE 7 and GlassFish
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 
JDK versions and OpenJDK
JDK versions and OpenJDKJDK versions and OpenJDK
JDK versions and OpenJDK
 
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
Red Hat and Oracle: Delivering on the Promise of Interoperability in Java EE 7
 

More from Vinay H G

Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkinsVinay H G
 
Developers best practices_tutorial
Developers best practices_tutorialDevelopers best practices_tutorial
Developers best practices_tutorialVinay H G
 
Javamagazine20140304 dl
Javamagazine20140304 dlJavamagazine20140304 dl
Javamagazine20140304 dlVinay H G
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorialVinay H G
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updatesVinay H G
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda ExpressionsVinay H G
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812Vinay H G
 
Tutorial storybook
Tutorial storybookTutorial storybook
Tutorial storybookVinay H G
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Vinay H G
 
Agile practice-2012
Agile practice-2012Agile practice-2012
Agile practice-2012Vinay H G
 
OAuth with Restful Web Services
OAuth with Restful Web Services OAuth with Restful Web Services
OAuth with Restful Web Services Vinay H G
 
Java Garbage Collection
Java Garbage CollectionJava Garbage Collection
Java Garbage CollectionVinay H G
 

More from Vinay H G (12)

Continuous integration using jenkins
Continuous integration using jenkinsContinuous integration using jenkins
Continuous integration using jenkins
 
Developers best practices_tutorial
Developers best practices_tutorialDevelopers best practices_tutorial
Developers best practices_tutorial
 
Javamagazine20140304 dl
Javamagazine20140304 dlJavamagazine20140304 dl
Javamagazine20140304 dl
 
Hibernate tutorial
Hibernate tutorialHibernate tutorial
Hibernate tutorial
 
Java 8 selected updates
Java 8 selected updatesJava 8 selected updates
Java 8 selected updates
 
Lambda Expressions
Lambda ExpressionsLambda Expressions
Lambda Expressions
 
Javase7 1641812
Javase7 1641812Javase7 1641812
Javase7 1641812
 
Tutorial storybook
Tutorial storybookTutorial storybook
Tutorial storybook
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
 
Agile practice-2012
Agile practice-2012Agile practice-2012
Agile practice-2012
 
OAuth with Restful Web Services
OAuth with Restful Web Services OAuth with Restful Web Services
OAuth with Restful Web Services
 
Java Garbage Collection
Java Garbage CollectionJava Garbage Collection
Java Garbage Collection
 

Recently uploaded

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdfChristopherTHyatt
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Recently uploaded (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Why should i switch to Java SE 7

  • 1. 1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. CON7357 Why Should I Switch to Java SE 7? Dave Keenan, Java Performance Architect, Oracle Staffan Friberg, JVM Product Manager, Oracle 2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. The following 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 © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. Agenda §  Mature and Recommended §  New Features §  Performance Benefits §  Backwards Compatibility §  Summary 4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. Mature and Recommended 5 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. Deployed and Used Fast and increasing uptake §  23% of the respondents to ZeroTurnaround’s study use JDK 7[1] –  Less than 6 months after Java SE 7 was released! §  Jelastic’s latest report show 79% of the deployments in their Java PaaS use JDK 7[2] 1)  http://zeroturnaround.com/labs/developer-productivity-report-2012-java-tools-tech-devs-and-data 2)  http://blog.jelastic.com/2012/09/12/software-stack-market-share-august-2012 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. Mature One year since GA §  Tried and tested with a huge set of applications and libraries –  Java and OpenJDK communities –  Java ISVs –  Oracle’s Java products §  7 update releases –  Bugs and security fixes –  Performance enhancements –  New features 7 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. Certified and Recommended §  Certified and supported by all major –  IDEs and development tools –  Java EE application servers §  Recommended JDK –  New deployments – both server and client applications §  Auto-update coming soon –  Already default JRE on java.com 8 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. Certified Platforms Oracle JDK 7 §  Windows – x86 and x64 §  Linux – x86, x64 and ARM v6 & v7 §  Solaris – x86, x64, SPARC and SPARC v9 §  Mac OS X – x64 http://www.oracle.com/technetwork/java/javase/config-417990.html 9 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. Support Free Public Updates §  Java SE 6 –  Public updates of Java SE 6 ending in February 2013 –  Updates available via support contract §  Java SE 7 –  Public updates available until at least July 2014 §  Java SE public updates a)  3 years after it has been made generally available b)  1 year after a subsequent major release c)  6 months after a subsequent major release has become the default JRE http://www.oracle.com/technetwork/java/eol-135779.html 10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. Java SE 7 Implementations §  OpenJDK –  Most of our development work is done in OpenJDK §  Java SE Licensees –  SAP, HP, Fujitsu §  IBM –  New JVM features §  Balanced GC –  Optimized class libraries 11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. New Features 12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. Development Focusing Resources §  Feature and performance development is targeted for –  JDK 7 update releases –  JDK 8 §  JDK 6 not completely frozen –  Security and bug fixes are always back-ported 13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. Serviceability Features JRockit / HotSpot Convergence §  Java Mission Control –  Monitor, manage, profile §  Java Flight Recorder –  Profiling, problem analysis, debugging –  Partial implementation in JDK 7 §  Oracle Fusion Middleware probes only 14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. Java Diagnostic Commands JDK Introspection §  Complete tool chain –  Framework for easy implementation and integration –  Command line tool, jcmd §  jcmd –  List running Java processes §  jcmd <pid> help –  List all available commands, currently ~15 different commands 15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. Diagnostic Commands Class Histogram jcmd <pid> GC.class_histogram num #instances #bytes class name ---------------------------------------------- 1: 5466 9460256 [I 2: 54844 7491712 <constMethodKlass> 3: 54844 7474144 <methodKlass> 4: 4722 5887584 <constantPoolKlass> 5: 4722 4133992 <instanceKlassKlass> 6: 4091 3663584 <constantPoolCacheKlass> 7: 27380 2352496 [C 8: 12229 2181656 [B 9: 27066 649584 java.lang.String 10: 5082 622520 java.lang.Class ... 16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. G1 – Garbage First Recommended Use Cases §  Supported for production use since 7u4 §  Large heaps with GC latency requirements –  Typically ~6GB or larger heaps –  Stable and predictable GC latencies below 0.5 seconds §  Applications that have –  more than 50% live data on the heap –  varied object allocation rate –  undesired long GC or compaction pauses (greater than 0.5s) 17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. G1 – Garbage First Performance Typical Java EE Application 4.0 3.5 3.0 GC Length (s) 2.5 2.0 G1 1.5 CMS 1.0 Parallel 0.5 0.0 N-4 N-3 N-2 N-1 N 5 Longest GCs 18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. G1 – Garbage First Performance Typical Java EE Application with Fragmentation 35 30 25 GC Length (s) 20 G1 15 CMS 10 Parallel 5 0 N-4 N-3 N-2 N-1 N 5 Longest GCs 19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. Runtime Compiler Improvements Performance §  TieredCompilation –  Interpreter -> Client Compiler (C1) -> Highly Optimized Server Compiler (C2) –  Not on by default §  Tuning challenges –  Current heuristics are insufficient –  Combined C1+C2 compiled code puts pressure on ReservedCodeCache 20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. Sockets Direct Protocol (SDP) Infiniband Support §  Transparent support for IB networks using regular Sockets –  java.net and NIO §  SDP support is disabled by default –  Create an SDP configuration file. –  Set the system property that specifies the location of the configuration file. §  http://docs.oracle.com/javase/tutorial/sdp/index.html 21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. Performance Benefits 22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. Performance Features Java Class Libraries §  Avoid Contention in Date –  Changed from HashTable to ConcurrentHashMap §  BigDecimal improvements, CR 7013110 §  Copy elision in many of the sunpkcs JNI calls, CR 6988081 23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. Performance Features Java Class Libraries §  Crypto configuration file updates, CR 7036252 –  Improves out of the box crypto experience §  User land crypto for SPARC T4, CR 7013347, (uses T4 crypto instructions), targeted for 7u2 –  Much faster crypto on SPARC T4 and later §  Adler32 & CRC32 to leverage T-series hardware CRC, CR 7039848, possibly implement similar intrinsic approach being implemented for “user land crypto”, targeted for 7u2 24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. Performance Features Java Class Libraries §  String(byte[] bytes, String csn) and String.getBytes(String csn) –  Optimized String char[] byte[] conversion –  2 – 3x performance improvement in micro-benchmarks with small Strings §  Java Concurrency APIs (JSR 166y) –  New improvements in JDK 7 –  Fork-join Framework 25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. Performance Features JSR 166y: Fork Join Framework §  Goal is to take advantage of multiple processor §  Designed for task that can be broken down into smaller pieces –  Eg. Fibonacci number fib(10) = fib(9) + fib(8) §  Typical algorithm that uses fork join if I can manage the task perform the task else fork task into x number of smaller/similar task join the results 26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. Performance Features HotSpot JVM §  Updated native compilers –  gcc 4.2 –  Oracle Studio §  -XX:+UseNUMA on Java 7 –  Linux kernel 2.6.19 or later –  glibc 2.6.1 27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. Performance Features HotSpot JVM: Partial Perm Gen Removal §  Partial Permanent Generation removal in JDK 7 –  Interned Strings moved to Java heap §  First step: Full removal in JDK 8 §  My be necessary to adjust GC tuning –  Interned Strings now in heap –  Applications with high GC time –  Applications with high interned String count –  Larger heap size may be needed 28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. Performance Features HotSpot JVM: Internal JVM Data Structures §  Interned Strings §  Distinct class names loaded §  Hashtable implementation –  Default table size is 1009 –  Significant performance impact if more than 1009 §  Increase sizes if needed: –  Interned Strings: -XX:StringTableSize=n –  Distinct Class names:-XX:+UnlockExperimentalVMOptions -XX:PredictedClassLoadCount=# 29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. Performance Features Client Library Updates §  Nimbus Look and Feel §  Platform APIs for shaped and translucent windows §  JLayer (formerly from Swing labs) §  Optimized 2D rendering §  Improved Xrender support on Linux 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. Performance Features JDBC 4.1 Updates §  Allow Connection, ResultSet and Statement objects to be used with the try-with-resources statement –  Implement AutoCloseable interface §  RowSetFactory and RowSetProvider classes added to javax.sql.rowset package 31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. Performance Features XML APIs Updates §  JAXP 1.4.5 (Parsing) –  Bug fixes, conformance, security, performance –  StAX upgraded to version 1.2 §  JAXB 2.2.3 (Binding) –  Minor changes to XMLElement interface §  JAX-WS 2.2.4 (Web Services) –  Minor changes –  Support for Async Servlet Transport using Servlet 3.0 API 32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. Performance Features Java Class Libraries – Asynchronous I/O §  java.io a short history –  Pre JDK 1.4 – blocking I/O –  JDK 1.4 onwards – non blocking I/O, memory mapped files, file lock, channels and buffers –  JDK 7 – asynchronous I/O §  Provides asynchronous I/O to both sockets and files –  Take advantage of operating systems I/O facilities where available 33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. Java 7 Performance SPECjbb2005 throughout Java 7 Development Builds 3000000 2500000 SPECjbb2005 bops 2000000 1500000 1000000 500000 0 10 20 30 40 50 60 80 90 100 110 120 132 138 JDK 7 Build •  4x2.4GHz WSM-EX, Oracle Solaris 11 Express snv_156 X86 •  2.2x Improvement through JDK 7 development 34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. Java 7 Performance SPECjbb2005 Improvement through JDK optimization 300% Normalized SPECjbb2005 bops 250% 200% 150% 100% 50% 0% JDK 5_07 JDK 6 JDK 6_02 JDK 6_05-P JDK 6_06-P JDK 6_14-P JDK 6_21-P JDK 6_25 JDK Releases •  2x3.33GHz WSM-EP-B1, Windows 2008 Server Enterprise •  2.5x performance improvement over the last three years 35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. Java 7 Performance SPECjbb2005 Improvement through JDK optimization 1600% Normalized SPECjbb2005 bops 1400% 1200% 1000% 800% 600% 400% 200% 0% X5160 (JDK 5_07) X5355 (JDK6_02) X5460 (JDK 6_06-P) X5570 (JDK 6_14-P) X5680 (JDK 6_21-P) Intel CPU Release + Optimized JDK •  14x HW + SW improvement over 5 Intel CPU Releases 36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. Java 7 Performance Competitive Landscape §  SPECjbb2005 –  JDK 7 (IBM J9) is current 4-CPU Performance leader §  SPECjEnterprise2010 –  JDK 7 (Oracle HotSpot JVM) is current performance leader on x86_64 §  SPECpower_ssj2008 –  JDK 7 (IBM J9) is amongst the power/performance leaders 37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. Java 7 Performance Real World Performance §  JDK 7 Update 4 and Later –  Faster than Java 6 for 97% of Applications tested –  Faster than JRockit for 96% of Applications tested 38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. Backwards Compatibility 39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. Backward Compatibility §  Source compatibility – old Java source code continues to compile §  Binary compatibility – old Java class files continue to link §  Behavioral compatibility – execution generates the same result §  Java SE 7 and JDK 7 Compatibility –  http://www.oracle.com/technetwork/java/javase/compatibility-417013.html 40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. Heap Retuning §  First iteration of PermGen removal –  Reduce memory usage in PermGen –  Interned and final Strings moved to regular heap –  Impact: Fine tuned PermGen and Heap sizes might not be optimal 41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 42. Main Pitfalls What people have experienced §  More stringent bytecode verifier for Java SE 7 class files –  Mainly an issue when doing bytecode modification –  Most applications already updated to generate correct code –  Work around: -XX:-UseSplitVerifier §  Order of methods returned from getMethods() changed –  Was always specified to be unspecified –  Most affected applications already updated –  Work around: None 42 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 43. Summary 43 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 44. Summary Why Should I Switch to Java SE 7? §  Mature and proven release §  Continued free public updates §  Several new features and performance improvements §  Recommended and fully supported release 44 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 45. Final Comment After Updating to Java SE 7 §  Now when you are running Java SE 7, why not take a look at the new language features §  A sample of the sessions this year –  TUT4629 – JDK 7 in Action: Using New Core Platform Features in Real Code, Joe Darcy –  HOL2846 – The Power of Java 7 NIO.2 by Example, Mohamed Taman –  CON5357 – Exercising Java 7 Features in Enterprise Applications While Avoiding Pitfalls, Anil Kumar –  CON7236 – Advanced JVM Tuning, Dave Keenan §  and in the evenings check out last years sessions… –  http://www.parleys.com/#st=4&id=102979 45 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 46. 46 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.