SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
© 2011 IBM Corporation
WebSphere AI Summit
Inside IBM Java 7
Tim Ellison tim_ellison@uk.ibm.com
Senior technical Staff Member
Java Technology Centre, UK. twitter: @tpellison
© 2011 IBM Corporation
Important Disclaimers
THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES
ONLY.
WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION
CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED.
ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED
ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR
INFRASTRUCTURE DIFFERENCES.
ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE.
IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT
PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE.
IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF
THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION.
NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF:
- CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR
THEIR SUPPLIERS AND/OR LICENSORS
© 2011 IBM Corporation
Agenda – Inside IBM Java 7
 High level goals for Java 7
 Base feature details
– JSR 334 – Small language enhancements (Project Coin)
– JSR 203 – More new I/O APIs for the Java platform (NIO.2)
– JSR 292 – invokedynamic
– JSR 166y – concurrency and collections updates
 Smaller features (TLS 1.2, UNICODE 6.0...)
 IBM feature details
– Performance & platform exploitation – z196, POWER 7, ...
– Garbage Collector updates & new policy - “balanced”
– Technology Evaluation: WebSphere Real Time
– Serviceability improvements & Tools overview
 Questions?
© 2011 IBM Corporation
High level goals for Java 7
 Major Java platform release, touching on all aspects of the language and JVM
The goals for Java 7 SE are:
– Compatibility - “Any program running on a previous release of the platform
must also run unchanged on an implementation of Java SE 7”
– Productivity - “...promote best coding practices and reduce boilerplate...
minimal learning curve...”
– Performance - “...new concurrency APIs... enable I/O-intensive applications by
introducing a true asynchronous I/O API..”
– Universality - “...accelerate the performance of dynamic languages on the
Java Virtual Machine.”
– Integration - “Java SE 7 will include a new, flexible filesystem API as part of
JSR 203...”
© 2011 IBM Corporation
New Language Constructs – project “coin”
 It's a “bunch of small change(s)”
 Strings in switch
switch(myString) {
case “one”: <do something>; break;
case “red”: <do something else>; break;
default: <do something generic>;
}
 Improved Type Inference for Generic Instance Creation (diamond)
Map<String,MyType> foo = new Map<String,MyType>();
Becomes
Map<String,MyType> foo = new Map<>();
© 2011 IBM Corporation
Coin continued...
 An omnibus proposal for better integral literals
– Allow binary literals (0b10011010)
– Allow underscores in numbers to help visual blocking (34_409_066)
– Unsigned literals (0xDEu)
 Simplified Varargs Method Invocation
– Moves warnings to method declaration, rather than on each user. Reduces unavoidable
warnings.
© 2011 IBM Corporation
Coin – multi-catch
 Developers often want to catch 2 exceptions the same way, but can't in Java 6:
try {
} catch(Exception a) {
problemHandler(a);
} catch(Error b) {
problemHandler(b);
}
 The following now works
try {
} catch(Exception|Error a) {
problemHandler(a);
}
© 2011 IBM Corporation
Coin – Automatic Resource Management
 Dealing with all possible failure paths is hard.
 Closing resources correctly in failure cases is hard.
 Idea: get the compiler to help, and define an interface on resources that knows how to tidy
up automatically.
try(InputStream inFile = new FileInputStream(aFileName);
OutputStream outFile = new FileOutputStream(aFileName)) {
byte[] buf = new byte[BUF_SIZE];
int readBytes;
while ((readBytes = inFile.read(buf)) >= 0)
inFile.write(buf, readBytes);
}
© 2011 IBM Corporation
NIO.2 – More new I/O APIs for Java (JSR 203)
 Goal: enable Java programmers to unlock the more powerful I/O abstractions.
 Asynchronous I/O
– Delegated IO operations
– Enable significant control over how I/O operations are handled, enabling better scaling.
– Socket & file classes available.
– 2 approaches to completion notification
• java.util.concurrent.Future
• CompletionHandler interface (competed() & failed() calls).
– Flexible thread pooling strategies, including custom ones.
© 2011 IBM Corporation
NIO.2 – New filesystem API
 Address long-standing usability issues & boilerplate
– User-level modelling of more file system concepts like symlinks
– File attributes modelled to represent FS-specific attributes (eg: owner, permissions...)
– DirectoryStream iterates through directories
• Scales very well, using less resources.
• Allows glob, regex or custom filtering.
– Recursive walks now provided, modelled on Visitor pattern.
 Model entirely artificial file systems much like Windows Explorer extensions
 File Change Notification
– Improves performance of apps that currently poll to observe changes.
© 2011 IBM Corporation
Directory Visitor - example
Files.walkFileTree(myPath, new SimpleFileVisitor<Path>() {
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) {
try {
file.doWhatIWanted();
} catch (IOException exc) {
// do error handling
}
return FileVisitResult.CONTINUE;
}
}
);
© 2011 IBM Corporation
java.util.concurrent updates
 As multicore becomes more prevalent, data structures and algorithms to match are key.
 Major new abstraction: Fork/Join framework
– Very good at 'divide and conquer' problems
– Specific model for parallel computation acceleration, significantly more efficient than
normal Thread or Executor -base synchronization models.
– Implements work stealing for lopsided work breakdowns
 Other enhancements
– TransferQueue – model producer/consumer queues efficiently
– Phaser – very flexible synchronization barrier
© 2011 IBM Corporation
JSR 292 - invokedynamic
 The JVM managed runtime is becoming home to more languages (eg: jruby, jython, fan,
clojure, etc..) but is missing some of the fundamentals that help make those languages
go fast.
 JSR 292 decouples method lookup and method dispatch
– Get away from being purely Java (the language) centric.
 Approach: introduce a new bytecode that executes a given method directly, and
provides the ability at runtime to rewire what method that is.
– Include a model for building up mutators (add a parameter, drop a parameter, etc..)
– Ensure the JIT can efficiently exploit these constructs to ensure efficient code
generation.
© 2011 IBM Corporation
Smaller Items
 Classloader changes
– Enable parallel classloading capability via new “safe” API.
– URLClassLoader gains a close() method.
 I18N - Unicode 6.0, Locale enhancement, Separate user locale and user-
interface locale
 TLS 1.2 – Security updates.
 JDBC 4.1 – ARM awareness.
 Client (UI) updates
– Create new platform APIs for 6u10 graphics features
– Nimbus look-and-feel for Swing
– Swing JLayer component
– XRender support
 Update the XML stack
© 2011 IBM Corporation
IBM-Unique Updates and Improvements
© 2011 IBM Corporation
Performance
 “4 out of 5 publishes prefer J9”
– http://www.spec.org/jbb2005/results/res2010q4/
– 88% of SPECjbb2005 publishes in last year with J9
• 94 with J9, 9 with HotSpot, 5 with Jrockit
 POWER7 Exploitation
– New prefetching capabilities
– Extended divide instructions
– Conversion between integer and float
– Bit permutation and popcount instructions
– BCD assist - Exploited through Java BigDecimal
 System zEnterprise 196 Exploitation
– 70+ new instructions
• High-word facility
• Interlock-update facility
• Non-destructive operands
• Conditional load/store
– 93% Aggregate improvement
• 14% Java 6.0.1 improvement
• 70% Hardware improvement
z/OS CPU Intensive Java
Workload
0
50
100
150
z10 J6 SR9
z196 J6 R2.6
z196 J6 SR9
© 2011 IBM Corporation
GC policies since IBM Java 5
Time
Thread 1
Thread 2
Thread 3
Thread n
GC
Java
-Xgcpolicy:optthruput (and –Xgcpolicy:subpool)
Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is
to show theoretical differences in pause times between GC policies.
How do the policies compare?
17
© 2011 IBM Corporation
GC policies since IBM Java 5
Time
GC
Java
Concurrent Tracing
-Xgcpolicy:optavgpause
Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is
to show theoretical differences in pause times between GC policies.
Thread 1
Thread 2
Thread 3
Thread n
How do the policies compare?
18
© 2011 IBM Corporation
GC policies since IBM Java 5
Time
Global GC
Java
Concurrent Tracing
Scavenge GC
-Xgcpolicy:gencon
Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is
to show theoretical differences in pause times between GC policies.
Thread 1
Thread 2
Thread 3
Thread n
How do the policies compare?
DEFAULT
in Java 7
19
© 2011 IBM Corporation
Next-Gen Hardware and Software Challenges
 Meet customer needs for scaling
garbage collection technology on
large heaps
 Provide strong adaptive performance without expert advice
– Flexible and adaptive behavior to provide a good first impression
– Every tuning option increases complexity by an order of magnitude
Heap Size
PauseTime
curre
nt
desired
Time
PauseTime
curre
nt
desired
 Maintain and increase technological competitive edge through innovation
– Address new developments in industry quickly
 Showcase hardware capabilities
through exploitation of platform
facilities
© 2011 IBM Corporation
-Xgcpolicy:balanced
 Incrementally collect areas of the heap that meet our needs – Partial Garbage Collect (PGC)
– Reduced pause times
– Freeing up memory
 Heap “collection set” selection based on best ROI (free memory) factors
– E.g., Recently allocated objects, areas that reduce fragmentation
 Various technologies applied
– Copy Forward (default)
• High level of object mobility (similar to gencon GC policy)
– Mark / Sweep / Compact
• Separates the notion of “collection” vs. “compaction”
Heap
Newly Allocated Newly AllocatedFragmented
Heap areas selected for GC
“Collection Set”
© 2011 IBM Corporation
Specifics
 Suggested deployment scenario(s)
– Larger (>4GB) heaps.
– Frequent global garbage collections.
– Excessive time spent in global compaction.
– Relatively frequent allocation of large (>1MB) arrays.
 Fully supported on all IBM Java 7 64 bit platforms
– First class citizen with other existing GC policies.
 We encourage use of the policy and welcome feedback!
– The opportunity exists to work with the dev team.
© 2011 IBM Corporation
Garbage Collection changes and improvements
 -Xgcpolicy:gencon is now the default
– Provides a better out of the box performance for a most applications
– Easily switch back to the old default with -Xgcpolicy:optthruput
 Object header size reduction & compressed references
– Object headers are 4-16 bytes depending on object type and object reference size (32bit,
64bit compressed reference or 64bit)
– “small 64 bit” (eg: 4-20GB) now have a 32-bit like footprint (new in a Java 6 SR).
– Reduces garbage collection frequency
– Provides better object locality
 Scalability improvements to all garbage collection policies on large n-way machines
(#CPU > 64)
– Decreases the time spent in garbage collections pauses
 Scalability improvements to allocation mechanism for highly parallel applications
– -Xgcpolicy:subpool is now an alias for -Xgcpolicy:optthruput
 New format for verbose:gc output
– Event based instead of summary based
– Provides more detailed information for easier analysis
© 2011 IBM Corporation
Try Out WebSphere Real Time (WRT)
 WebSphere Real Time is a Java Runtime built with J9 technology that provides
consistent performance
– Incremental GC means consistently short (3ms) GC pause times
– JIT compilations cannot block application threads
– Also a Hard Real Time flavor that runs on Real-Time Linux (e.g. RHEL MRG, Novell
SLERT)
 IBM Java 7 will include evaluation version of upcoming WRT-V3
– New pause time target option lets you configure GC pause times
– Throughput performance improvements
– 32- and 64-bit Linux on x86, 32- and 64-bit AIX on POWER
 Just add -Xgcpolicy:metronome to your Java 7 command line to try it out!
© 2011 IBM Corporation
GC Pause Times: gencon and metronome
~5ms ~8ms
10ms – 14 ms
70ms
Gencon pause times
2.8ms - 3.2ms
Metronome Pause Times (Target=3ms)
Metronome Pause Times (Target=6ms)
Metronome Pause Times (Target=10ms)
5.8ms - 6.2ms
9.8ms - 10.2ms
 Most GC policies have pause times
ranging upwards of 10 – 100 ms
 Metronome controls pause times to
as short as 3ms
 Throughput impact, varies by
application
© 2011 IBM Corporation
Consumability and RAS Enhancements
 -Xdump
– Native stack traces in javacore
– Environment variables and ULIMITs in javacore
– Native memory usage counters in javacore and from core dumps via DTFJ
– Multi-part TDUMPs on zOS 64
 -Xtrace
– Tracepoints can include Java stacks (jstacktrace)
 -Xlog
– Messages go to the Event log on Windows, syslog on Linux, errlog or syslog on AIX,
MVS console on zOS.
© 2011 IBM Corporation
Native memory usage counters
NATIVEMEMINFO subcomponent dump routine
=======================================
JRE: 555,698,264 bytes / 1208 allocations
|
+--VM: 552,977,664 bytes / 856 allocations
| |
| +--Classes: 1,949,664 bytes / 92 allocations
| |
| +--Memory Manager (GC): 547,705,848 bytes / 146 allocations
| | |
| | +--Java Heap: 536,875,008 bytes / 1 allocation
| | |
| | +--Other: 10,830,840 bytes / 145 allocations
| |
| +--Threads: 2,660,804 bytes / 104 allocations
| | |
| | +--Java Stack: 64,944 bytes / 9 allocations
| | |
| | +--Native Stack: 2,523,136 bytes / 11 allocations
| | |
| | +--Other: 72,724 bytes / 84 allocations
| |
| +--Trace: 92,464 bytes / 208 allocations
| |
© 2011 IBM Corporation
Example JVM message in Windows Event log
© 2011 IBM Corporation
Garbage Collection and Memory Visualizer (GCMV)
 Tool to analyze Java verbose GC logs
 Graphs Recommendations use heuristics to guide
you towards issues that may be limiting
performance.
 Show garbage collection and Java heap statistics
over time.
 Not only for memory errors, very good for
performance tuning.
Diagnostics Collector
 At JVM start it runs a diagnostic configuration check
 Runs as a separate process when the JVM detects a ‘dump event’
–
GPF
–
Java heap OutOfMemoryError
–
Unexpected signal received
–
(optionally) JVM start, JVM stop
 Knows all possible dump locations and searches to gather all dumps into a single zip file
 Collects system dumps, Java dumps, heap dumps, verbose GC logs
 If system dump found jextract runs automatically
 Requires IBM SDK for Java version 5.0 or above
29
© 2011 IBM Corporation
Memory Analyzer
 Eclipse project for analyzing heap dumps and
identifying memory leaks from JVMs
 Works with IBM system dumps, heapdumps and Sun
HPROF binary dumps
 Provides memory leak detection and footprint
analysis

Objects by Class, Dominator Tree Analysis, Path
to GC Roots, Dominator Tree by Class Loader
 Provides SQL like object query language (OQL)
 Provides extension points to write analysis plugins
Health Center
 Live monitoring tool with very low overhead
 Understand how your application is behaving
 It provides access to information about method
profiling, garbage collection, class loading, locking
and environment data
 Diagnose potential problems, with
recommendations
 Works at the JVM level – no domain-specific (e.g.
J2EE) information
 Suitable for all Java applications30
© 2011 IBM Corporation
Summary & Conclusion
 Base Java 7 Features
– NIO.2, java.util.concurrent, etc...
 IBM feature details
– Performance & Platform Exploitation
– Garbage Collection Updates & “Balanced” GC policy
– Serviceability improvements
 Free Tools Overview
© 2011 IBM Corporation
© IBM Corporation 2011. All Rights Reserved.
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of
International Business Machines Corp., registered in many jurisdictions
worldwide. Other product and service names might be trademarks of IBM or
other companies. A current list of IBM trademarks is available on the Web at
“Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml.
Copyright and Trademarks

Contenu connexe

Tendances

Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batchtimfanelli
 
Java one 2015 [con3339]
Java one 2015 [con3339]Java one 2015 [con3339]
Java one 2015 [con3339]Arshal Ameen
 
JavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataJavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataBrian Martin
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application serverRohit Kelapure
 
JavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the WizardryJavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the WizardryRyan Sciampacone
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesChris Bailey
 
Обзор современных возможностей по распараллеливанию и векторизации приложений...
Обзор современных возможностей по распараллеливанию и векторизации приложений...Обзор современных возможностей по распараллеливанию и векторизации приложений...
Обзор современных возможностей по распараллеливанию и векторизации приложений...yaevents
 
SemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSumanMitra22
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structureodedns
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012Arun Gupta
 
WAS Support & Monitoring Tools
WAS Support & Monitoring ToolsWAS Support & Monitoring Tools
WAS Support & Monitoring ToolsRoyal Cyber Inc.
 
VMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerVMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerMark Stoodley
 
WebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysisWebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysisShetal Patel
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Arun Gupta
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaChris Bailey
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010Arun Gupta
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_eeYogesh Bindwal
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...terrencebarr
 

Tendances (20)

Three key concepts for java batch
Three key concepts for java batchThree key concepts for java batch
Three key concepts for java batch
 
Java one 2015 [con3339]
Java one 2015 [con3339]Java one 2015 [con3339]
Java one 2015 [con3339]
 
JavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big DataJavaOne BOF 5957 Lightning Fast Access to Big Data
JavaOne BOF 5957 Lightning Fast Access to Big Data
 
Classloader leak detection in websphere application server
Classloader leak detection in websphere application serverClassloader leak detection in websphere application server
Classloader leak detection in websphere application server
 
JavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the WizardryJavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
JavaOne 2013: Garbage Collection Unleashed - Demystifying the Wizardry
 
WebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination FeaturesWebSphere Technical University: Top WebSphere Problem Determination Features
WebSphere Technical University: Top WebSphere Problem Determination Features
 
Обзор современных возможностей по распараллеливанию и векторизации приложений...
Обзор современных возможностей по распараллеливанию и векторизации приложений...Обзор современных возможностей по распараллеливанию и векторизации приложений...
Обзор современных возможностей по распараллеливанию и векторизации приложений...
 
SemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptxSemeruRuntimesUnderTheCover .pptx
SemeruRuntimesUnderTheCover .pptx
 
S109 cics-java
S109 cics-javaS109 cics-java
S109 cics-java
 
Designing JEE Application Structure
Designing JEE Application StructureDesigning JEE Application Structure
Designing JEE Application Structure
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
WebLogic 12c Developer Deep Dive at Oracle Develop India 2012
 
WAS Support & Monitoring Tools
WAS Support & Monitoring ToolsWAS Support & Monitoring Tools
WAS Support & Monitoring Tools
 
VMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developerVMIL keynote : Lessons from a production JVM runtime developer
VMIL keynote : Lessons from a production JVM runtime developer
 
WebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysisWebSphere Application Server JBoss TCO analysis
WebSphere Application Server JBoss TCO analysis
 
Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011Java EE 7 at JAX London 2011 and JFall 2011
Java EE 7 at JAX London 2011 and JFall 2011
 
JavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for JavaJavaOne2013: Secure Engineering Practices for Java
JavaOne2013: Secure Engineering Practices for Java
 
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
OSGi & Java EE in GlassFish @ Silicon Valley Code Camp 2010
 
Introduction to java_ee
Introduction to java_eeIntroduction to java_ee
Introduction to java_ee
 
JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...JavaFX - Bringing rich Internet applications ...
JavaFX - Bringing rich Internet applications ...
 

Similaire à Inside IBM Java 7

Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...timfanelli
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107Marcel Mitran
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinsonmfrancis
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haulIan Robinson
 
Real World Java Compatibility
Real World Java CompatibilityReal World Java Compatibility
Real World Java CompatibilityTim Ellison
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...0xdaryl
 
Whats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product SuiteWhats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product SuiteMicro Focus
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...mfrancis
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year projectsuneel singh
 
UI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesAndreas_Ecker
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentationdhananajay95
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsChris Bailey
 

Similaire à Inside IBM Java 7 (20)

Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
Three Key Concepts for Understanding JSR-352: Batch Programming for the Java ...
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
 
Travelling Light for the Long Haul - Ian Robinson
Travelling Light for the Long Haul -  Ian RobinsonTravelling Light for the Long Haul -  Ian Robinson
Travelling Light for the Long Haul - Ian Robinson
 
Travelling light for the long haul
Travelling light for the long haulTravelling light for the long haul
Travelling light for the long haul
 
Java8 - Under the hood
Java8 - Under the hoodJava8 - Under the hood
Java8 - Under the hood
 
Real World Java Compatibility
Real World Java CompatibilityReal World Java Compatibility
Real World Java Compatibility
 
Java By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu ManepalliJava By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu Manepalli
 
Java By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu ManepalliJava By Sai NagaVenkata BuchiBabu Manepalli
Java By Sai NagaVenkata BuchiBabu Manepalli
 
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
JavaOne 2015 CON7547 "Beyond the Coffee Cup: Leveraging Java Runtime Technolo...
 
Whats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product SuiteWhats new in Enterprise 5.0 Product Suite
Whats new in Enterprise 5.0 Product Suite
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Sunstate
SunstateSunstate
Sunstate
 
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
We Can Do Better - IBM's Vision for the Next Generation of Java Runtimes - Jo...
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Lec2 ecom fall16
Lec2 ecom fall16Lec2 ecom fall16
Lec2 ecom fall16
 
Project report for final year project
Project report for final year projectProject report for final year project
Project report for final year project
 
SunMicroSystems
SunMicroSystemsSunMicroSystems
SunMicroSystems
 
UI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core ChangesUI5con 2018: UI5 Evolution - The Core Changes
UI5con 2018: UI5 Evolution - The Core Changes
 
Advance java prasentation
Advance java prasentationAdvance java prasentation
Advance java prasentation
 
Impact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java ToolsImpact2014: Introduction to the IBM Java Tools
Impact2014: Introduction to the IBM Java Tools
 

Plus de Tim Ellison

The Extraordinary World of Quantum Computing
The Extraordinary World of Quantum ComputingThe Extraordinary World of Quantum Computing
The Extraordinary World of Quantum ComputingTim Ellison
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016Tim Ellison
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open InnovationTim Ellison
 
Secure Engineering Practices for Java
Secure Engineering Practices for JavaSecure Engineering Practices for Java
Secure Engineering Practices for JavaTim Ellison
 
Securing Java in the Server Room
Securing Java in the Server RoomSecuring Java in the Server Room
Securing Java in the Server RoomTim Ellison
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemTim Ellison
 
Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterTim Ellison
 
Using GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaUsing GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaTim Ellison
 

Plus de Tim Ellison (8)

The Extraordinary World of Quantum Computing
The Extraordinary World of Quantum ComputingThe Extraordinary World of Quantum Computing
The Extraordinary World of Quantum Computing
 
Apache Big Data Europe 2016
Apache Big Data Europe 2016Apache Big Data Europe 2016
Apache Big Data Europe 2016
 
Apache Harmony: An Open Innovation
Apache Harmony: An Open InnovationApache Harmony: An Open Innovation
Apache Harmony: An Open Innovation
 
Secure Engineering Practices for Java
Secure Engineering Practices for JavaSecure Engineering Practices for Java
Secure Engineering Practices for Java
 
Securing Java in the Server Room
Securing Java in the Server RoomSecuring Java in the Server Room
Securing Java in the Server Room
 
Modules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module SystemModules all the way down: OSGi and the Java Platform Module System
Modules all the way down: OSGi and the Java Platform Module System
 
Five cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark fasterFive cool ways the JVM can run Apache Spark faster
Five cool ways the JVM can run Apache Spark faster
 
Using GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with JavaUsing GPUs to Handle Big Data with Java
Using GPUs to Handle Big Data with Java
 

Dernier

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
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
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
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...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Inside IBM Java 7

  • 1. © 2011 IBM Corporation WebSphere AI Summit Inside IBM Java 7 Tim Ellison tim_ellison@uk.ibm.com Senior technical Staff Member Java Technology Centre, UK. twitter: @tpellison
  • 2. © 2011 IBM Corporation Important Disclaimers THE INFORMATION CONTAINED IN THIS PRESENTATION IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY. WHILST EFFORTS WERE MADE TO VERIFY THE COMPLETENESS AND ACCURACY OF THE INFORMATION CONTAINED IN THIS PRESENTATION, IT IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. ALL PERFORMANCE DATA INCLUDED IN THIS PRESENTATION HAVE BEEN GATHERED IN A CONTROLLED ENVIRONMENT. YOUR OWN TEST RESULTS MAY VARY BASED ON HARDWARE, SOFTWARE OR INFRASTRUCTURE DIFFERENCES. ALL DATA INCLUDED IN THIS PRESENTATION ARE MEANT TO BE USED ONLY AS A GUIDE. IN ADDITION, THE INFORMATION CONTAINED IN THIS PRESENTATION IS BASED ON IBM’S CURRENT PRODUCT PLANS AND STRATEGY, WHICH ARE SUBJECT TO CHANGE BY IBM, WITHOUT NOTICE. IBM AND ITS AFFILIATED COMPANIES SHALL NOT BE RESPONSIBLE FOR ANY DAMAGES ARISING OUT OF THE USE OF, OR OTHERWISE RELATED TO, THIS PRESENTATION OR ANY OTHER DOCUMENTATION. NOTHING CONTAINED IN THIS PRESENTATION IS INTENDED TO, OR SHALL HAVE THE EFFECT OF: - CREATING ANY WARRANT OR REPRESENTATION FROM IBM, ITS AFFILIATED COMPANIES OR ITS OR THEIR SUPPLIERS AND/OR LICENSORS
  • 3. © 2011 IBM Corporation Agenda – Inside IBM Java 7  High level goals for Java 7  Base feature details – JSR 334 – Small language enhancements (Project Coin) – JSR 203 – More new I/O APIs for the Java platform (NIO.2) – JSR 292 – invokedynamic – JSR 166y – concurrency and collections updates  Smaller features (TLS 1.2, UNICODE 6.0...)  IBM feature details – Performance & platform exploitation – z196, POWER 7, ... – Garbage Collector updates & new policy - “balanced” – Technology Evaluation: WebSphere Real Time – Serviceability improvements & Tools overview  Questions?
  • 4. © 2011 IBM Corporation High level goals for Java 7  Major Java platform release, touching on all aspects of the language and JVM The goals for Java 7 SE are: – Compatibility - “Any program running on a previous release of the platform must also run unchanged on an implementation of Java SE 7” – Productivity - “...promote best coding practices and reduce boilerplate... minimal learning curve...” – Performance - “...new concurrency APIs... enable I/O-intensive applications by introducing a true asynchronous I/O API..” – Universality - “...accelerate the performance of dynamic languages on the Java Virtual Machine.” – Integration - “Java SE 7 will include a new, flexible filesystem API as part of JSR 203...”
  • 5. © 2011 IBM Corporation New Language Constructs – project “coin”  It's a “bunch of small change(s)”  Strings in switch switch(myString) { case “one”: <do something>; break; case “red”: <do something else>; break; default: <do something generic>; }  Improved Type Inference for Generic Instance Creation (diamond) Map<String,MyType> foo = new Map<String,MyType>(); Becomes Map<String,MyType> foo = new Map<>();
  • 6. © 2011 IBM Corporation Coin continued...  An omnibus proposal for better integral literals – Allow binary literals (0b10011010) – Allow underscores in numbers to help visual blocking (34_409_066) – Unsigned literals (0xDEu)  Simplified Varargs Method Invocation – Moves warnings to method declaration, rather than on each user. Reduces unavoidable warnings.
  • 7. © 2011 IBM Corporation Coin – multi-catch  Developers often want to catch 2 exceptions the same way, but can't in Java 6: try { } catch(Exception a) { problemHandler(a); } catch(Error b) { problemHandler(b); }  The following now works try { } catch(Exception|Error a) { problemHandler(a); }
  • 8. © 2011 IBM Corporation Coin – Automatic Resource Management  Dealing with all possible failure paths is hard.  Closing resources correctly in failure cases is hard.  Idea: get the compiler to help, and define an interface on resources that knows how to tidy up automatically. try(InputStream inFile = new FileInputStream(aFileName); OutputStream outFile = new FileOutputStream(aFileName)) { byte[] buf = new byte[BUF_SIZE]; int readBytes; while ((readBytes = inFile.read(buf)) >= 0) inFile.write(buf, readBytes); }
  • 9. © 2011 IBM Corporation NIO.2 – More new I/O APIs for Java (JSR 203)  Goal: enable Java programmers to unlock the more powerful I/O abstractions.  Asynchronous I/O – Delegated IO operations – Enable significant control over how I/O operations are handled, enabling better scaling. – Socket & file classes available. – 2 approaches to completion notification • java.util.concurrent.Future • CompletionHandler interface (competed() & failed() calls). – Flexible thread pooling strategies, including custom ones.
  • 10. © 2011 IBM Corporation NIO.2 – New filesystem API  Address long-standing usability issues & boilerplate – User-level modelling of more file system concepts like symlinks – File attributes modelled to represent FS-specific attributes (eg: owner, permissions...) – DirectoryStream iterates through directories • Scales very well, using less resources. • Allows glob, regex or custom filtering. – Recursive walks now provided, modelled on Visitor pattern.  Model entirely artificial file systems much like Windows Explorer extensions  File Change Notification – Improves performance of apps that currently poll to observe changes.
  • 11. © 2011 IBM Corporation Directory Visitor - example Files.walkFileTree(myPath, new SimpleFileVisitor<Path>() { public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { try { file.doWhatIWanted(); } catch (IOException exc) { // do error handling } return FileVisitResult.CONTINUE; } } );
  • 12. © 2011 IBM Corporation java.util.concurrent updates  As multicore becomes more prevalent, data structures and algorithms to match are key.  Major new abstraction: Fork/Join framework – Very good at 'divide and conquer' problems – Specific model for parallel computation acceleration, significantly more efficient than normal Thread or Executor -base synchronization models. – Implements work stealing for lopsided work breakdowns  Other enhancements – TransferQueue – model producer/consumer queues efficiently – Phaser – very flexible synchronization barrier
  • 13. © 2011 IBM Corporation JSR 292 - invokedynamic  The JVM managed runtime is becoming home to more languages (eg: jruby, jython, fan, clojure, etc..) but is missing some of the fundamentals that help make those languages go fast.  JSR 292 decouples method lookup and method dispatch – Get away from being purely Java (the language) centric.  Approach: introduce a new bytecode that executes a given method directly, and provides the ability at runtime to rewire what method that is. – Include a model for building up mutators (add a parameter, drop a parameter, etc..) – Ensure the JIT can efficiently exploit these constructs to ensure efficient code generation.
  • 14. © 2011 IBM Corporation Smaller Items  Classloader changes – Enable parallel classloading capability via new “safe” API. – URLClassLoader gains a close() method.  I18N - Unicode 6.0, Locale enhancement, Separate user locale and user- interface locale  TLS 1.2 – Security updates.  JDBC 4.1 – ARM awareness.  Client (UI) updates – Create new platform APIs for 6u10 graphics features – Nimbus look-and-feel for Swing – Swing JLayer component – XRender support  Update the XML stack
  • 15. © 2011 IBM Corporation IBM-Unique Updates and Improvements
  • 16. © 2011 IBM Corporation Performance  “4 out of 5 publishes prefer J9” – http://www.spec.org/jbb2005/results/res2010q4/ – 88% of SPECjbb2005 publishes in last year with J9 • 94 with J9, 9 with HotSpot, 5 with Jrockit  POWER7 Exploitation – New prefetching capabilities – Extended divide instructions – Conversion between integer and float – Bit permutation and popcount instructions – BCD assist - Exploited through Java BigDecimal  System zEnterprise 196 Exploitation – 70+ new instructions • High-word facility • Interlock-update facility • Non-destructive operands • Conditional load/store – 93% Aggregate improvement • 14% Java 6.0.1 improvement • 70% Hardware improvement z/OS CPU Intensive Java Workload 0 50 100 150 z10 J6 SR9 z196 J6 R2.6 z196 J6 SR9
  • 17. © 2011 IBM Corporation GC policies since IBM Java 5 Time Thread 1 Thread 2 Thread 3 Thread n GC Java -Xgcpolicy:optthruput (and –Xgcpolicy:subpool) Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is to show theoretical differences in pause times between GC policies. How do the policies compare? 17
  • 18. © 2011 IBM Corporation GC policies since IBM Java 5 Time GC Java Concurrent Tracing -Xgcpolicy:optavgpause Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is to show theoretical differences in pause times between GC policies. Thread 1 Thread 2 Thread 3 Thread n How do the policies compare? 18
  • 19. © 2011 IBM Corporation GC policies since IBM Java 5 Time Global GC Java Concurrent Tracing Scavenge GC -Xgcpolicy:gencon Picture is only illustrative and doesn’t reflect any particular real-life application. The purpose is to show theoretical differences in pause times between GC policies. Thread 1 Thread 2 Thread 3 Thread n How do the policies compare? DEFAULT in Java 7 19
  • 20. © 2011 IBM Corporation Next-Gen Hardware and Software Challenges  Meet customer needs for scaling garbage collection technology on large heaps  Provide strong adaptive performance without expert advice – Flexible and adaptive behavior to provide a good first impression – Every tuning option increases complexity by an order of magnitude Heap Size PauseTime curre nt desired Time PauseTime curre nt desired  Maintain and increase technological competitive edge through innovation – Address new developments in industry quickly  Showcase hardware capabilities through exploitation of platform facilities
  • 21. © 2011 IBM Corporation -Xgcpolicy:balanced  Incrementally collect areas of the heap that meet our needs – Partial Garbage Collect (PGC) – Reduced pause times – Freeing up memory  Heap “collection set” selection based on best ROI (free memory) factors – E.g., Recently allocated objects, areas that reduce fragmentation  Various technologies applied – Copy Forward (default) • High level of object mobility (similar to gencon GC policy) – Mark / Sweep / Compact • Separates the notion of “collection” vs. “compaction” Heap Newly Allocated Newly AllocatedFragmented Heap areas selected for GC “Collection Set”
  • 22. © 2011 IBM Corporation Specifics  Suggested deployment scenario(s) – Larger (>4GB) heaps. – Frequent global garbage collections. – Excessive time spent in global compaction. – Relatively frequent allocation of large (>1MB) arrays.  Fully supported on all IBM Java 7 64 bit platforms – First class citizen with other existing GC policies.  We encourage use of the policy and welcome feedback! – The opportunity exists to work with the dev team.
  • 23. © 2011 IBM Corporation Garbage Collection changes and improvements  -Xgcpolicy:gencon is now the default – Provides a better out of the box performance for a most applications – Easily switch back to the old default with -Xgcpolicy:optthruput  Object header size reduction & compressed references – Object headers are 4-16 bytes depending on object type and object reference size (32bit, 64bit compressed reference or 64bit) – “small 64 bit” (eg: 4-20GB) now have a 32-bit like footprint (new in a Java 6 SR). – Reduces garbage collection frequency – Provides better object locality  Scalability improvements to all garbage collection policies on large n-way machines (#CPU > 64) – Decreases the time spent in garbage collections pauses  Scalability improvements to allocation mechanism for highly parallel applications – -Xgcpolicy:subpool is now an alias for -Xgcpolicy:optthruput  New format for verbose:gc output – Event based instead of summary based – Provides more detailed information for easier analysis
  • 24. © 2011 IBM Corporation Try Out WebSphere Real Time (WRT)  WebSphere Real Time is a Java Runtime built with J9 technology that provides consistent performance – Incremental GC means consistently short (3ms) GC pause times – JIT compilations cannot block application threads – Also a Hard Real Time flavor that runs on Real-Time Linux (e.g. RHEL MRG, Novell SLERT)  IBM Java 7 will include evaluation version of upcoming WRT-V3 – New pause time target option lets you configure GC pause times – Throughput performance improvements – 32- and 64-bit Linux on x86, 32- and 64-bit AIX on POWER  Just add -Xgcpolicy:metronome to your Java 7 command line to try it out!
  • 25. © 2011 IBM Corporation GC Pause Times: gencon and metronome ~5ms ~8ms 10ms – 14 ms 70ms Gencon pause times 2.8ms - 3.2ms Metronome Pause Times (Target=3ms) Metronome Pause Times (Target=6ms) Metronome Pause Times (Target=10ms) 5.8ms - 6.2ms 9.8ms - 10.2ms  Most GC policies have pause times ranging upwards of 10 – 100 ms  Metronome controls pause times to as short as 3ms  Throughput impact, varies by application
  • 26. © 2011 IBM Corporation Consumability and RAS Enhancements  -Xdump – Native stack traces in javacore – Environment variables and ULIMITs in javacore – Native memory usage counters in javacore and from core dumps via DTFJ – Multi-part TDUMPs on zOS 64  -Xtrace – Tracepoints can include Java stacks (jstacktrace)  -Xlog – Messages go to the Event log on Windows, syslog on Linux, errlog or syslog on AIX, MVS console on zOS.
  • 27. © 2011 IBM Corporation Native memory usage counters NATIVEMEMINFO subcomponent dump routine ======================================= JRE: 555,698,264 bytes / 1208 allocations | +--VM: 552,977,664 bytes / 856 allocations | | | +--Classes: 1,949,664 bytes / 92 allocations | | | +--Memory Manager (GC): 547,705,848 bytes / 146 allocations | | | | | +--Java Heap: 536,875,008 bytes / 1 allocation | | | | | +--Other: 10,830,840 bytes / 145 allocations | | | +--Threads: 2,660,804 bytes / 104 allocations | | | | | +--Java Stack: 64,944 bytes / 9 allocations | | | | | +--Native Stack: 2,523,136 bytes / 11 allocations | | | | | +--Other: 72,724 bytes / 84 allocations | | | +--Trace: 92,464 bytes / 208 allocations | |
  • 28. © 2011 IBM Corporation Example JVM message in Windows Event log
  • 29. © 2011 IBM Corporation Garbage Collection and Memory Visualizer (GCMV)  Tool to analyze Java verbose GC logs  Graphs Recommendations use heuristics to guide you towards issues that may be limiting performance.  Show garbage collection and Java heap statistics over time.  Not only for memory errors, very good for performance tuning. Diagnostics Collector  At JVM start it runs a diagnostic configuration check  Runs as a separate process when the JVM detects a ‘dump event’ – GPF – Java heap OutOfMemoryError – Unexpected signal received – (optionally) JVM start, JVM stop  Knows all possible dump locations and searches to gather all dumps into a single zip file  Collects system dumps, Java dumps, heap dumps, verbose GC logs  If system dump found jextract runs automatically  Requires IBM SDK for Java version 5.0 or above 29
  • 30. © 2011 IBM Corporation Memory Analyzer  Eclipse project for analyzing heap dumps and identifying memory leaks from JVMs  Works with IBM system dumps, heapdumps and Sun HPROF binary dumps  Provides memory leak detection and footprint analysis  Objects by Class, Dominator Tree Analysis, Path to GC Roots, Dominator Tree by Class Loader  Provides SQL like object query language (OQL)  Provides extension points to write analysis plugins Health Center  Live monitoring tool with very low overhead  Understand how your application is behaving  It provides access to information about method profiling, garbage collection, class loading, locking and environment data  Diagnose potential problems, with recommendations  Works at the JVM level – no domain-specific (e.g. J2EE) information  Suitable for all Java applications30
  • 31. © 2011 IBM Corporation Summary & Conclusion  Base Java 7 Features – NIO.2, java.util.concurrent, etc...  IBM feature details – Performance & Platform Exploitation – Garbage Collection Updates & “Balanced” GC policy – Serviceability improvements  Free Tools Overview
  • 32. © 2011 IBM Corporation © IBM Corporation 2011. All Rights Reserved. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at “Copyright and trademark information” at www.ibm.com/legal/copytrade.shtml. Copyright and Trademarks