SlideShare a Scribd company logo
Chris Bailey – IBM Runtime Monitoring and Diagnostics 
30th September 2014 
Java Debugging 
Tools and Tricks for Troubleshooting 
Document number 
© 2014 IBM Corporation
© 2014 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 
2
Introduction to the speaker 
 Chris Bailey 
IBM Runtime Monitoring and Diagnostics Architect 
- 14 years working with Java and JVM technologies 
 Recent work focus: 
- Java monitoring, diagnostics and troubleshooting 
- Java integration into the cloud 
- JavaScript monitoring, diagnostics and troubleshooting 
 My contact information: 
- baileyc@uk.ibm.com 
- http://www.linkedin.com/in/chrisbaileyibm 
- http://www.slideshare.net/cnbailey/ 
- @Chris__Bailey 
© 2014 3 IBM Corporation
OutOfMemory 
© 2014 4 IBM Corporation
Java Memory Usage 
 Maximum memory available to a process is determined by architecture 
– 32bit process is limited to 2^32 bytes = 4GB 
– 64bit process is limited to 2^64 bytes = 16 EiB 
● Example for 32bit: 
0 GB 4 GB 
-Xmx 
OS and C-Runtime Java Heap(s) 
Native Heap 
0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 
 Amount and location of memory used for “OS and C Runtime” determined by OS 
© 2014 5 IBM Corporation
Layout by OS 
 Windows 32bit: 
0 GB 4 GB 
-Xmx 
Java Heap(s) Native Heap 
OS and C-Runtime 
0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 
 Windows 32bit with /3GB: 
Libraries 
0 GB 4 GB 
-Xmx 
Java Heap(s) Native Heap 
OS and C-Runtime 
0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 
Libraries 
© 2014 6 IBM Corporation
Layout by OS 
 Linux 32bit: 
0 GB 4 GB 
-Xmx 
Java Heap(s) Native Heap 
Kernel 
0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 
 Linux with hugemem kernel: 
0 GB 4 GB 
-Xmx 
Java Heap(s) Native Heap 
K 
0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 
© 2014 7 IBM Corporation
Native Heap Usage 
Java Heap Native Heap 
© 2014 8 IBM Corporation
Native Heap Usage 
Java Heap Native Heap 
© 2014 9 IBM Corporation
OutOfMemoryErrors 
 An OutOfMemoryError occurs if the Java heap or Native heap is exhausted 
– Or the PermArea (for HotSpot before Java 8) 
 Tools are needed to track the memory usage of each of the pools: 
– Kernel/OS: OS (malloc) managed 
– Native Heap: OS (malloc) managed 
– Java Heap: Garbage Collection managed 
 Malloc managed memory needs to be tracked at the OS level* 
 Garbage Collection needs to be tracked at the Java runtime level 
* The JVM can grab this information from the OS for you 
© 2014 10 IBM Corporation
OS Level Memory Monitoring 
Linux: “ps” utility Windows: “perfmon” Virtual Bytes counters 
#!/bin/sh 
PID=$1 
INTERVAL=3 
# Echo time at start of monitoring. 
echo timestamp = `date +%s` 
# Echo the interval frequency. 
echo "ps interval = $INTERVAL" 
# Run the system command at intervals. 
while ([ -d /proc/$PID ]) do 
ps -p $PID -o pid,vsz,rss 
sleep $INTERVAL 
done 
Can be collected to CSV file 
© 2014 11 IBM Corporation
OS Level Memory Monitoring 
Linux: “ps” utility Windows: “perfmon” Virtual Bytes counters 
#!/bin/sh 
PID=$1 
INTERVAL=3 
# Echo time at start of monitoring. 
echo timestamp = `date +%s` 
# Echo the interval frequency. 
echo "ps interval = $INTERVAL" 
# Run the system command at intervals. 
while ([ -d /proc/$PID ]) do 
ps -p $PID -o pid,vsz,rss 
sleep $INTERVAL 
done 
Can be collected to CSV file 
© 2014 12 IBM Corporation
Visualization of OS level memory monitoring 
● Garbage Collection and Memory Visualizer (GCMV): 
- Available from 
● Tool to analyze Java Heap and “Native” Heap memory 
● Provides Graphical Display of Data 
- Allows zooming and cropping 
- Allows change of axes value and units 
- Allows comparison of multiple files 
● Analysis and Recommendations 
- Statistical summary and recommendations 
- Flags errors and warnings 
● Supports Linux, Windows, AIX, i5/OS and z/OS 
© 2014 13 IBM Corporation
Runtime Monitoring using JVM Tools 
 IBM Health Center (IBM JVMs*) 
– -Xhealthcenter 
 Machine and process memory usage 
 Native heap breakdown 
* limited support exists for HotSpot 
 Oracle Mission Control (HotSpot JVMs) 
– -XX:+UnlockCommercialFeatures 
– -XX:+FlightRecorder 
 Machine and process memory usage 
© 2014 14 IBM Corporation
OS Level Memory Profiling 
Windows: UMDH 
 Takes snapshot of the current native heap 
 Tracks allocating stack traces 
 Second snapshot is taken and stack traces 
for outstanding memory is produced 
000000AD bytes in 0x1 allocations (@ 0x00000031 + 
0x0000001F) by: BackTrace00468 
ntdll!RtlpNtMakeTemporaryKey+000074D0 
ntdll!RtlInitializeSListHead+00010D08 
ntdll!wcsncat+00000224 
leakyjniapp! 
Java_com_ibm_jtc_demos_LeakyJNIApp_nativeMethod 
 Detailed on Microsoft website: 
http://support.microsoft.com/kb/268343 
 Also check out “debugdiag” 
Linux:Debug Malloc / Malloc Interception 
 Approach 1: 
– Intercept calls to malloc and free 
– Create a stacks allocation table 
– IBM provides a Linux Memory Tracker 
 Approach 2: valgrind 
valgrind --trace-children=yes --leak-check=full 
LEAK SUMMARY: 
definitely lost: 63,957 bytes in 69 blocks. 
indirectly lost: 2,168 bytes in 12 blocks. 
possibly lost: 8,600 bytes in 11 blocks. 
still reachable: 5,156,340 bytes in 980 blocks. 
suppressed: 0 bytes in 0 blocks. 
Reachable blocks (those to which a pointer was 
found) are not shown. 
© 2014 15 IBM Corporation
Garbage Collection Monitoring 
 IBM JVMs: 
– -verbose:gc 
– -Xverbosegclog:<name>,X,Y 
 Oracle JVMs: 
– -XX:+PrintGCDateStamps 
– -XX:+PrintGCDetails 
– -XX:+PrintGCTimeStamps 
– -Xloggc:<name> 
 Visualization available in GCMV for both IBM and Oracle verbose:gc 
© 2014 16 IBM Corporation
Runtime GC Monitoring 
 IBM Health Center (IBM JVMs*) 
– -Xhealthcenter 
 Used Heap and Pause Times 
 Allocation Profiling 
* limited support exists for HotSpot 
 Oracle Mission Control (HotSpot JVMs) 
– -XX:+UnlockCommercialFeatures 
– -XX:+FlightRecorder 
 Used Heap and Pause Times 
 Allocation profiling 
© 2014 17 IBM Corporation
Java Heap Profiling: Heap Dump Analysis 
 IBM JVMs: System Dump of PHD 
– -Xdump:system|heap:events=systhrow, 
filter=java/lang/OutOfMemoryError 
– -Xdump:system|heap:events=user 
– -Xtrace:maximal=mt,trigger= 
method{<name>,sysdump|heapdump} 
– com.ibm.jvm.Dump.JavaDump()/HeapDump() 
– Health Center 
 Oracle JVMs: HPROF dump 
 Visualization available in IBM Memory Analyzer 
– -XX:+HeapDumpOnOutOfMemoryError 
– jmap -dump:format=b 
– JConsole 
– Supports both IBM and HotSpot dumps 
– Provides leak and footprint analysis 
– Provides heap and application visualization 
© 2014 18 IBM Corporation
Java Heap Profiling: Heap Dump Analysis 
© 2014 19 IBM Corporation
Debugging from Dumps 
© 2014 20 IBM Corporation
Debugging from Dumps 
● System dumps and HPROF dumps contain Object fields and values 
● System dumps also have thread stacks and local variables 
● Provides visibility into code flow 
● Zero ongoing performance overhead 
● Dump time is ~2s/GB 
● Makes it possible to diagnose a much wider set of issues 
● Exceptions: ability to look at data not exposed in the message 
● Functional Issues: possible to look at the data being acted on 
© 2014 21 IBM Corporation
Exceptions 
● java.net.ConnectException 
java.net.ConnectException: Connection refused: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352) 
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214) 
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201) 
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377) 
● Stack trace in Memory Analyzer gives 
access to local variables 
- host Name = Bailey-W530 
- port = 100 
© 2014 22 IBM Corporation
Functional Issues 
● java.lang.OutOfMemoryError allocating a 1,129,665,376 byte object 
at com/ibm/wsspi/security/token/WSOpaqueTokenHelper.readTokens(WSOpaqueTokenHelper.java:924) 
at com/ibm/wsspi/security/token/WSOpaqueTokenHelper.createTokenHolderListFromOpaqueToken(WSOpaqueTokenHelper.java:844) 
at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl.fromBytesInDomain(MessagingEngineIdentityImpl.java:439) 
at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl.access$200(MessagingEngineIdentityImpl.java:91) 
at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl$2.run(MessagingEngineIdentityImpl.java:299) 
at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl$2.run(MessagingEngineIdentityImpl.java:293) 
at com/ibm/ws/sib/security/impl/BusUtilities.doInBusDomain(BusUtilities.java:115) 
● The readTokens method references a ByteArrayInputStream with a pos of 2369 
● Content of ByteArrayStream around 2369: 
● Which converts to 1,129,665,364 
© 2014 23 IBM Corporation
Performance 
© 2014 24 IBM Corporation
Performance Analysis 
 Need to look at each of the layers of the application: 
– Platform: Machine and Operating System resources 
– Runtime: Java heap resources 
– Application: Inefficient code, synchronization 
 Recommended to look at Platform and Runtime first 
– “Easy to resolve” 
 Biggest gains are in the application and back end responsiveness 
– OS and Java Runtime are already highly tuned and self adapting 
© 2014 25 IBM Corporation
OS Level Memory Monitoring 
Linux: 
vmstat {interval} {samples} > vmstat.out 
procs -----------memory---------- -swap- --io-- --system-- ---cpu--- 
r b swpd free buff cache si so bi bo in cs us sy id wa 
0 0 17196 679860 1196656 2594884 0 0 1 4 0 0 0 0 100 0 
0 0 17196 679868 1196656 2594884 0 0 0 40 1012 43 0 0 100 0 
0 0 17196 679992 1196656 2594884 0 0 0 3 1004 43 0 0 100 0 
top -H -b -c > top_threads.out 
Windows: “perfmon”: 
Process > Page Faults/sec 
Process > %Processor Time 
Network > Output Queue Length 
Physical Disk > Current Disk Queue Length 
Can be collected to CSV file 
top - 15:46:52 up 178 days, 4:53, 2 users, load average: 0.31, 
0.08, 0.02 
Tasks: 77 total, 2 running, 74 sleeping, 1 stopped, 0 zombie 
Cpu(s): 24.6% us, 0.5% sy, 0.0% ni, 74.9% id, 0.0% wa, 0.0% hi, 
0.0% si 
Mem: 5591016k total, 5416896k used, 174120k free, 1196656k 
buffers 
Swap: 2104472k total, 17196k used, 2087276k free, 2594884k 
cached 
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
8502 user1 25 0 599m 466m 5212 R 99.9 8.5 0:23.92 java 
7547 root 15 0 33472 2916 1144 S 0.3 0.1 778:17.98 X 
1 root 16 0 656 228 192 S 0.0 0.0 0:07.43 init 
© 2014 26 IBM Corporation
Garbage Collection Monitoring 
 IBM JVMs: 
– -verbose:gc 
– -Xverbosegclog:<name>,X,Y 
 Oracle JVMs: 
– -XX:+PrintGCDateStamps 
– -XX:+PrintGCDetails 
– -XX:+PrintGCTimeStamps 
– -Xloggc:<name> 
 Visualization available in GCMV for both IBM and Oracle verbose:gc 
© 2014 27 IBM Corporation
Runtime GC Monitoring 
 IBM Health Center (IBM JVMs*) 
– -Xhealthcenter 
 Used Heap and Pause Times 
 Allocation Profiling 
 Oracle Mission Control (HotSpot JVMs) 
– -XX:+UnlockCommercialFeatures 
– -XX:+FlightRecorder 
 Used Heap and Pause Times 
 Allocation profiling 
© 2014 28 IBM Corporation
Application method CPU usage 
 IBM Health Center (IBM JVMs*) 
– -Xhealthcenter 
 CPU usage per method 
 Method call graphs 
 Oracle Mission Control (HotSpot JVMs) 
– -XX:+UnlockCommercialFeatures 
– -XX:+FlightRecorder 
 CPU usage per method 
 Method call graphs 
© 2014 29 IBM Corporation
Application lock usage 
 IBM Health Center (IBM JVMs*) 
– -Xhealthcenter 
 Contention frequency and time 
 Lock hold time 
 Oracle Mission Control (HotSpot JVMs) 
– -XX:+UnlockCommercialFeatures 
– -XX:+FlightRecorder 
 Contention frequency and time 
 Lock hold time 
© 2014 30 IBM Corporation
Questions? 
© 2014 31 IBM Corporation
IBM Developer Kits for Java 
ibm.biz/javasdk 
WebShere Liberty Profile 
wasdev.net 
IBM Bluemix 
ibm.com/bluemix 
IBM Developer Kits for Node.js 
ibm.biz/nodesdk 
© 2014 32 IBM Corporation
www.ibm.com/developer 
Discover 
new technical resources. 
ibm.biz/javaone2014 
Visit Booth 5511 to learn about Cloud, DevOps and Mobile solutions 
© 2014 IBM Corporation 
Develop 
your coding skills. 
Connect 
with developers.
Copyright and Trademarks 
© IBM Corporation 2013. All Rights Reserved. 
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International 
Business Machines Corp., and 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 – see the IBM “Copyright and 
trademark information” page at URL: www.ibm.com/legal/copytrade.shtml 
© 2014 34 IBM Corporation
© 2014 35 IBM Corporation

More Related Content

What's hot

Transparent GPU Exploitation for Java
Transparent GPU Exploitation for JavaTransparent GPU Exploitation for Java
Transparent GPU Exploitation for Java
Kazuaki Ishizaki
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
Positive Hack Days
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
Guillaume Laforge
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
Terry Cho
 
Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = Javaデバッガ
Kenji Kazumura
 
FLOW3 Tutorial - T3CON11 Frankfurt
FLOW3 Tutorial - T3CON11 FrankfurtFLOW3 Tutorial - T3CON11 Frankfurt
FLOW3 Tutorial - T3CON11 Frankfurt
Robert Lemke
 
A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9
Marcus Lagergren
 
ClassLoader Leaks
ClassLoader LeaksClassLoader Leaks
ClassLoader Leaks
Mattias Jiderhamn
 
Performance Benchmarking of Clouds Evaluating OpenStack
Performance Benchmarking of Clouds                Evaluating OpenStackPerformance Benchmarking of Clouds                Evaluating OpenStack
Performance Benchmarking of Clouds Evaluating OpenStack
Pradeep Kumar
 
The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015
craig lehmann
 
Advanced AV Foundation (CocoaConf, Aug '11)
Advanced AV Foundation (CocoaConf, Aug '11)Advanced AV Foundation (CocoaConf, Aug '11)
Advanced AV Foundation (CocoaConf, Aug '11)
Chris Adamson
 
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVMDiagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
Staffan Larsen
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
Nuxeo
 
Spring Performance Gains
Spring Performance GainsSpring Performance Gains
Spring Performance Gains
VMware Tanzu
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
Simon Ritter
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
guest1f2740
 
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
Principled Technologies
 
Power ai image-pipeline
Power ai image-pipelinePower ai image-pipeline
Power ai image-pipeline
Paulo Sergio Lemes Queiroz
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! David Delabassee
 

What's hot (20)

Transparent GPU Exploitation for Java
Transparent GPU Exploitation for JavaTransparent GPU Exploitation for Java
Transparent GPU Exploitation for Java
 
Как мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управленияКак мы взломали распределенные системы конфигурационного управления
Как мы взломали распределенные системы конфигурационного управления
 
Going to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific LanguagesGoing to Mars with Groovy Domain-Specific Languages
Going to Mars with Groovy Domain-Specific Languages
 
자바 성능 강의
자바 성능 강의자바 성능 강의
자바 성능 강의
 
Python + GDB = Javaデバッガ
Python + GDB = JavaデバッガPython + GDB = Javaデバッガ
Python + GDB = Javaデバッガ
 
FLOW3 Tutorial - T3CON11 Frankfurt
FLOW3 Tutorial - T3CON11 FrankfurtFLOW3 Tutorial - T3CON11 Frankfurt
FLOW3 Tutorial - T3CON11 Frankfurt
 
A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9A new execution model for Nashorn in Java 9
A new execution model for Nashorn in Java 9
 
ClassLoader Leaks
ClassLoader LeaksClassLoader Leaks
ClassLoader Leaks
 
Scaling Django
Scaling DjangoScaling Django
Scaling Django
 
Performance Benchmarking of Clouds Evaluating OpenStack
Performance Benchmarking of Clouds                Evaluating OpenStackPerformance Benchmarking of Clouds                Evaluating OpenStack
Performance Benchmarking of Clouds Evaluating OpenStack
 
The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015The OMR GC talk - Ruby Kaigi 2015
The OMR GC talk - Ruby Kaigi 2015
 
Advanced AV Foundation (CocoaConf, Aug '11)
Advanced AV Foundation (CocoaConf, Aug '11)Advanced AV Foundation (CocoaConf, Aug '11)
Advanced AV Foundation (CocoaConf, Aug '11)
 
Diagnosing Your Application on the JVM
Diagnosing Your Application on the JVMDiagnosing Your Application on the JVM
Diagnosing Your Application on the JVM
 
[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo[NYC Meetup] Docker at Nuxeo
[NYC Meetup] Docker at Nuxeo
 
Spring Performance Gains
Spring Performance GainsSpring Performance Gains
Spring Performance Gains
 
Modern Java Workshop
Modern Java WorkshopModern Java Workshop
Modern Java Workshop
 
Find bottleneck and tuning in Java Application
Find bottleneck and tuning in Java ApplicationFind bottleneck and tuning in Java Application
Find bottleneck and tuning in Java Application
 
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
MySQL and Spark machine learning performance on Azure VMsbased on 3rd Gen AMD...
 
Power ai image-pipeline
Power ai image-pipelinePower ai image-pipeline
Power ai image-pipeline
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
 

Viewers also liked

Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx Poland
C2B2 Consulting
 
Java profiling Do It Yourself
Java profiling Do It YourselfJava profiling Do It Yourself
Java profiling Do It Yourself
aragozin
 
WebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsWebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic Tools
Chris Bailey
 
Profiler Guided Java Performance Tuning
Profiler Guided Java Performance TuningProfiler Guided Java Performance Tuning
Profiler Guided Java Performance Tuning
osa_ora
 
Debugging Your Production JVM
Debugging Your Production JVMDebugging Your Production JVM
Debugging Your Production JVM
kensipe
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages Toolchain
Attila Szegedi
 
Hotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful PartsHotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful Parts
jClarity
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
pkoza
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
Atthakorn Chanthong
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
Minh Hoang
 
Real Life Java EE Performance Tuning
Real Life Java EE Performance TuningReal Life Java EE Performance Tuning
Real Life Java EE Performance Tuning
C2B2 Consulting
 
An Introduction To Java Profiling
An Introduction To Java ProfilingAn Introduction To Java Profiling
An Introduction To Java Profilingschlebu
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
Jerry Kurian
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & Tuning
Muhammed Shakir
 
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
Chris Bailey
 
Everything I Ever Learned About JVM Performance Tuning @Twitter
Everything I Ever Learned About JVM Performance Tuning @TwitterEverything I Ever Learned About JVM Performance Tuning @Twitter
Everything I Ever Learned About JVM Performance Tuning @Twitter
Attila Szegedi
 

Viewers also liked (16)

Hands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx PolandHands-on Performance Tuning Lab - Devoxx Poland
Hands-on Performance Tuning Lab - Devoxx Poland
 
Java profiling Do It Yourself
Java profiling Do It YourselfJava profiling Do It Yourself
Java profiling Do It Yourself
 
WebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic ToolsWebSphere Technical University: Introduction to the Java Diagnostic Tools
WebSphere Technical University: Introduction to the Java Diagnostic Tools
 
Profiler Guided Java Performance Tuning
Profiler Guided Java Performance TuningProfiler Guided Java Performance Tuning
Profiler Guided Java Performance Tuning
 
Debugging Your Production JVM
Debugging Your Production JVMDebugging Your Production JVM
Debugging Your Production JVM
 
Towards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages ToolchainTowards JVM Dynamic Languages Toolchain
Towards JVM Dynamic Languages Toolchain
 
Hotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful PartsHotspot Garbage Collection - The Useful Parts
Hotspot Garbage Collection - The Useful Parts
 
Efficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java ApplicationsEfficient Memory and Thread Management in Highly Parallel Java Applications
Efficient Memory and Thread Management in Highly Parallel Java Applications
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Java Performance Tuning
Java Performance TuningJava Performance Tuning
Java Performance Tuning
 
Real Life Java EE Performance Tuning
Real Life Java EE Performance TuningReal Life Java EE Performance Tuning
Real Life Java EE Performance Tuning
 
An Introduction To Java Profiling
An Introduction To Java ProfilingAn Introduction To Java Profiling
An Introduction To Java Profiling
 
Java performance tuning
Java performance tuningJava performance tuning
Java performance tuning
 
Java Performance Monitoring & Tuning
Java Performance Monitoring & TuningJava Performance Monitoring & Tuning
Java Performance Monitoring & Tuning
 
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
 
Everything I Ever Learned About JVM Performance Tuning @Twitter
Everything I Ever Learned About JVM Performance Tuning @TwitterEverything I Ever Learned About JVM Performance Tuning @Twitter
Everything I Ever Learned About JVM Performance Tuning @Twitter
 

Similar to JavaOne 2014: Java Debugging

Debugging Native heap OOM - JavaOne 2013
Debugging Native heap OOM - JavaOne 2013Debugging Native heap OOM - JavaOne 2013
Debugging Native heap OOM - JavaOne 2013
MattKilner
 
A165 tools for java and javascript
A165 tools for java and javascriptA165 tools for java and javascript
A165 tools for java and javascript
Toby Corbin
 
JavaOne 2014: Java vs JavaScript
JavaOne 2014:   Java vs JavaScriptJavaOne 2014:   Java vs JavaScript
JavaOne 2014: Java vs JavaScript
Chris Bailey
 
ContainerWorkloadwithSemeru.pdf
ContainerWorkloadwithSemeru.pdfContainerWorkloadwithSemeru.pdf
ContainerWorkloadwithSemeru.pdf
SumanMitra22
 
OpenPOWER Seminar at IIT Madras
OpenPOWER Seminar at IIT MadrasOpenPOWER Seminar at IIT Madras
OpenPOWER Seminar at IIT Madras
Ganesan Narayanasamy
 
Emc vi pr controller tecnical customer presentation
Emc vi pr controller tecnical customer presentationEmc vi pr controller tecnical customer presentation
Emc vi pr controller tecnical customer presentation
xKinAnx
 
Share seattle health_center
Share seattle health_centerShare seattle health_center
Share seattle health_center
nick_garrod
 
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
jaxLondonConference
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
Chris Bailey
 
Splunking the JVM
Splunking the JVMSplunking the JVM
Splunking the JVM
Damien Dallimore
 
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
Hendrik van Run
 
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
Chris Bailey
 
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
J On The Beach
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
Marcel Mitran
 
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
MattKilner
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VM
Tim Ellison
 
OpenPOWER Seminar at IIIT Bangalore
OpenPOWER Seminar at IIIT BangaloreOpenPOWER Seminar at IIIT Bangalore
OpenPOWER Seminar at IIIT Bangalore
Ganesan Narayanasamy
 
ODA Backup Restore Utility & ODA Rescue Live Disk
ODA Backup Restore Utility & ODA Rescue Live DiskODA Backup Restore Utility & ODA Rescue Live Disk
ODA Backup Restore Utility & ODA Rescue Live Disk
Ruggero Citton
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded Devices
Jan S. Rellermeyer
 

Similar to JavaOne 2014: Java Debugging (20)

Debugging Native heap OOM - JavaOne 2013
Debugging Native heap OOM - JavaOne 2013Debugging Native heap OOM - JavaOne 2013
Debugging Native heap OOM - JavaOne 2013
 
A165 tools for java and javascript
A165 tools for java and javascriptA165 tools for java and javascript
A165 tools for java and javascript
 
JavaOne 2014: Java vs JavaScript
JavaOne 2014:   Java vs JavaScriptJavaOne 2014:   Java vs JavaScript
JavaOne 2014: Java vs JavaScript
 
ContainerWorkloadwithSemeru.pdf
ContainerWorkloadwithSemeru.pdfContainerWorkloadwithSemeru.pdf
ContainerWorkloadwithSemeru.pdf
 
OpenPOWER Seminar at IIT Madras
OpenPOWER Seminar at IIT MadrasOpenPOWER Seminar at IIT Madras
OpenPOWER Seminar at IIT Madras
 
Emc vi pr controller tecnical customer presentation
Emc vi pr controller tecnical customer presentationEmc vi pr controller tecnical customer presentation
Emc vi pr controller tecnical customer presentation
 
Share seattle health_center
Share seattle health_centerShare seattle health_center
Share seattle health_center
 
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...From Java Code to Java Heap: Understanding the Memory Usage of Your App  - Ch...
From Java Code to Java Heap: Understanding the Memory Usage of Your App - Ch...
 
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
JavaOne2013: Build Your Own Runtime Monitoring for the IBM JDK with the Healt...
 
Splunking the JVM
Splunking the JVMSplunking the JVM
Splunking the JVM
 
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
2689 - Exploring IBM PureApplication System and IBM Workload Deployer Best Pr...
 
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
 
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
A Java Implementer's Guide to Boosting Apache Spark Performance by Tim Ellison.
 
Java on z overview 20161107
Java on z overview 20161107Java on z overview 20161107
Java on z overview 20161107
 
Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013Windows Debugging Tools - JavaOne 2013
Windows Debugging Tools - JavaOne 2013
 
Virtualization aware Java VM
Virtualization aware Java VMVirtualization aware Java VM
Virtualization aware Java VM
 
OpenPOWER Seminar at IIIT Bangalore
OpenPOWER Seminar at IIIT BangaloreOpenPOWER Seminar at IIIT Bangalore
OpenPOWER Seminar at IIIT Bangalore
 
ODA Backup Restore Utility & ODA Rescue Live Disk
ODA Backup Restore Utility & ODA Rescue Live DiskODA Backup Restore Utility & ODA Rescue Live Disk
ODA Backup Restore Utility & ODA Rescue Live Disk
 
Concierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded DevicesConcierge - Bringing OSGi (back) to Embedded Devices
Concierge - Bringing OSGi (back) to Embedded Devices
 
Handout2o
Handout2oHandout2o
Handout2o
 

More from Chris Bailey

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks
Chris Bailey
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSVoxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Chris Bailey
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldSilicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Chris Bailey
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
Chris Bailey
 
AltConf 2019: Server-Side Swift State of the Union
AltConf 2019:  Server-Side Swift State of the UnionAltConf 2019:  Server-Side Swift State of the Union
AltConf 2019: Server-Side Swift State of the Union
Chris Bailey
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
Chris Bailey
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
Chris Bailey
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL
Chris Bailey
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
Chris Bailey
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftSwift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Chris Bailey
 
Try!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftTry!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is Swift
Chris Bailey
 
Swift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionSwift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the Union
Chris Bailey
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
Chris Bailey
 
IBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftIBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and Swift
Chris Bailey
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Chris Bailey
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift
Chris Bailey
 
AltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesAltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 Minutes
Chris Bailey
 
InterConnect: Server Side Swift for Java Developers
InterConnect:  Server Side Swift for Java DevelopersInterConnect:  Server Side Swift for Java Developers
InterConnect: Server Side Swift for Java Developers
Chris Bailey
 
InterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenInterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and When
Chris Bailey
 
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
Chris Bailey
 

More from Chris Bailey (20)

NodeJS Interactive 2019: FaaS meets Frameworks
NodeJS Interactive 2019:  FaaS meets FrameworksNodeJS Interactive 2019:  FaaS meets Frameworks
NodeJS Interactive 2019: FaaS meets Frameworks
 
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaSVoxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
Voxxed Micro-services: Serverless JakartaEE - JAX-RS comes to FaaS
 
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native WorldSilicon Valley Code Camp 2019 - Reaching the Cloud Native World
Silicon Valley Code Camp 2019 - Reaching the Cloud Native World
 
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at SpeedFaaS Meets Java EE: Developing Cloud Native Applications at Speed
FaaS Meets Java EE: Developing Cloud Native Applications at Speed
 
AltConf 2019: Server-Side Swift State of the Union
AltConf 2019:  Server-Side Swift State of the UnionAltConf 2019:  Server-Side Swift State of the Union
AltConf 2019: Server-Side Swift State of the Union
 
Server-side Swift with Swagger
Server-side Swift with SwaggerServer-side Swift with Swagger
Server-side Swift with Swagger
 
Node Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.jsNode Summit 2018: Cloud Native Node.js
Node Summit 2018: Cloud Native Node.js
 
Index - BFFs vs GraphQL
Index - BFFs vs GraphQLIndex - BFFs vs GraphQL
Index - BFFs vs GraphQL
 
Swift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift MicroservicesSwift Cloud Workshop - Swift Microservices
Swift Cloud Workshop - Swift Microservices
 
Swift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack SwiftSwift Cloud Workshop - Codable, the key to Fullstack Swift
Swift Cloud Workshop - Codable, the key to Fullstack Swift
 
Try!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is SwiftTry!Swift India 2017: All you need is Swift
Try!Swift India 2017: All you need is Swift
 
Swift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the UnionSwift Summit 2017: Server Swift State of the Union
Swift Summit 2017: Server Swift State of the Union
 
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js MicroservicesIBM Cloud University: Build, Deploy and Scale Node.js Microservices
IBM Cloud University: Build, Deploy and Scale Node.js Microservices
 
IBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and SwiftIBM Cloud University: Java, Node.js and Swift
IBM Cloud University: Java, Node.js and Swift
 
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-ServicesNode Interactive: Node.js Performance and Highly Scalable Micro-Services
Node Interactive: Node.js Performance and Highly Scalable Micro-Services
 
FrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) SwiftFrenchKit 2017: Server(less) Swift
FrenchKit 2017: Server(less) Swift
 
AltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 MinutesAltConf 2017: Full Stack Swift in 30 Minutes
AltConf 2017: Full Stack Swift in 30 Minutes
 
InterConnect: Server Side Swift for Java Developers
InterConnect:  Server Side Swift for Java DevelopersInterConnect:  Server Side Swift for Java Developers
InterConnect: Server Side Swift for Java Developers
 
InterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and WhenInterConnect: Java, Node.js and Swift - Which, Why and When
InterConnect: Java, Node.js and Swift - Which, Why and When
 
Playgrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFFPlaygrounds: Mobile + Swift = BFF
Playgrounds: Mobile + Swift = BFF
 

Recently uploaded

RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 

Recently uploaded (20)

RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 

JavaOne 2014: Java Debugging

  • 1. Chris Bailey – IBM Runtime Monitoring and Diagnostics 30th September 2014 Java Debugging Tools and Tricks for Troubleshooting Document number © 2014 IBM Corporation
  • 2. © 2014 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 2
  • 3. Introduction to the speaker  Chris Bailey IBM Runtime Monitoring and Diagnostics Architect - 14 years working with Java and JVM technologies  Recent work focus: - Java monitoring, diagnostics and troubleshooting - Java integration into the cloud - JavaScript monitoring, diagnostics and troubleshooting  My contact information: - baileyc@uk.ibm.com - http://www.linkedin.com/in/chrisbaileyibm - http://www.slideshare.net/cnbailey/ - @Chris__Bailey © 2014 3 IBM Corporation
  • 4. OutOfMemory © 2014 4 IBM Corporation
  • 5. Java Memory Usage  Maximum memory available to a process is determined by architecture – 32bit process is limited to 2^32 bytes = 4GB – 64bit process is limited to 2^64 bytes = 16 EiB ● Example for 32bit: 0 GB 4 GB -Xmx OS and C-Runtime Java Heap(s) Native Heap 0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000  Amount and location of memory used for “OS and C Runtime” determined by OS © 2014 5 IBM Corporation
  • 6. Layout by OS  Windows 32bit: 0 GB 4 GB -Xmx Java Heap(s) Native Heap OS and C-Runtime 0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000  Windows 32bit with /3GB: Libraries 0 GB 4 GB -Xmx Java Heap(s) Native Heap OS and C-Runtime 0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 Libraries © 2014 6 IBM Corporation
  • 7. Layout by OS  Linux 32bit: 0 GB 4 GB -Xmx Java Heap(s) Native Heap Kernel 0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000  Linux with hugemem kernel: 0 GB 4 GB -Xmx Java Heap(s) Native Heap K 0x0 0x80000000 0xFFFFFFFF 0x40000000 0xC0000000 © 2014 7 IBM Corporation
  • 8. Native Heap Usage Java Heap Native Heap © 2014 8 IBM Corporation
  • 9. Native Heap Usage Java Heap Native Heap © 2014 9 IBM Corporation
  • 10. OutOfMemoryErrors  An OutOfMemoryError occurs if the Java heap or Native heap is exhausted – Or the PermArea (for HotSpot before Java 8)  Tools are needed to track the memory usage of each of the pools: – Kernel/OS: OS (malloc) managed – Native Heap: OS (malloc) managed – Java Heap: Garbage Collection managed  Malloc managed memory needs to be tracked at the OS level*  Garbage Collection needs to be tracked at the Java runtime level * The JVM can grab this information from the OS for you © 2014 10 IBM Corporation
  • 11. OS Level Memory Monitoring Linux: “ps” utility Windows: “perfmon” Virtual Bytes counters #!/bin/sh PID=$1 INTERVAL=3 # Echo time at start of monitoring. echo timestamp = `date +%s` # Echo the interval frequency. echo "ps interval = $INTERVAL" # Run the system command at intervals. while ([ -d /proc/$PID ]) do ps -p $PID -o pid,vsz,rss sleep $INTERVAL done Can be collected to CSV file © 2014 11 IBM Corporation
  • 12. OS Level Memory Monitoring Linux: “ps” utility Windows: “perfmon” Virtual Bytes counters #!/bin/sh PID=$1 INTERVAL=3 # Echo time at start of monitoring. echo timestamp = `date +%s` # Echo the interval frequency. echo "ps interval = $INTERVAL" # Run the system command at intervals. while ([ -d /proc/$PID ]) do ps -p $PID -o pid,vsz,rss sleep $INTERVAL done Can be collected to CSV file © 2014 12 IBM Corporation
  • 13. Visualization of OS level memory monitoring ● Garbage Collection and Memory Visualizer (GCMV): - Available from ● Tool to analyze Java Heap and “Native” Heap memory ● Provides Graphical Display of Data - Allows zooming and cropping - Allows change of axes value and units - Allows comparison of multiple files ● Analysis and Recommendations - Statistical summary and recommendations - Flags errors and warnings ● Supports Linux, Windows, AIX, i5/OS and z/OS © 2014 13 IBM Corporation
  • 14. Runtime Monitoring using JVM Tools  IBM Health Center (IBM JVMs*) – -Xhealthcenter  Machine and process memory usage  Native heap breakdown * limited support exists for HotSpot  Oracle Mission Control (HotSpot JVMs) – -XX:+UnlockCommercialFeatures – -XX:+FlightRecorder  Machine and process memory usage © 2014 14 IBM Corporation
  • 15. OS Level Memory Profiling Windows: UMDH  Takes snapshot of the current native heap  Tracks allocating stack traces  Second snapshot is taken and stack traces for outstanding memory is produced 000000AD bytes in 0x1 allocations (@ 0x00000031 + 0x0000001F) by: BackTrace00468 ntdll!RtlpNtMakeTemporaryKey+000074D0 ntdll!RtlInitializeSListHead+00010D08 ntdll!wcsncat+00000224 leakyjniapp! Java_com_ibm_jtc_demos_LeakyJNIApp_nativeMethod  Detailed on Microsoft website: http://support.microsoft.com/kb/268343  Also check out “debugdiag” Linux:Debug Malloc / Malloc Interception  Approach 1: – Intercept calls to malloc and free – Create a stacks allocation table – IBM provides a Linux Memory Tracker  Approach 2: valgrind valgrind --trace-children=yes --leak-check=full LEAK SUMMARY: definitely lost: 63,957 bytes in 69 blocks. indirectly lost: 2,168 bytes in 12 blocks. possibly lost: 8,600 bytes in 11 blocks. still reachable: 5,156,340 bytes in 980 blocks. suppressed: 0 bytes in 0 blocks. Reachable blocks (those to which a pointer was found) are not shown. © 2014 15 IBM Corporation
  • 16. Garbage Collection Monitoring  IBM JVMs: – -verbose:gc – -Xverbosegclog:<name>,X,Y  Oracle JVMs: – -XX:+PrintGCDateStamps – -XX:+PrintGCDetails – -XX:+PrintGCTimeStamps – -Xloggc:<name>  Visualization available in GCMV for both IBM and Oracle verbose:gc © 2014 16 IBM Corporation
  • 17. Runtime GC Monitoring  IBM Health Center (IBM JVMs*) – -Xhealthcenter  Used Heap and Pause Times  Allocation Profiling * limited support exists for HotSpot  Oracle Mission Control (HotSpot JVMs) – -XX:+UnlockCommercialFeatures – -XX:+FlightRecorder  Used Heap and Pause Times  Allocation profiling © 2014 17 IBM Corporation
  • 18. Java Heap Profiling: Heap Dump Analysis  IBM JVMs: System Dump of PHD – -Xdump:system|heap:events=systhrow, filter=java/lang/OutOfMemoryError – -Xdump:system|heap:events=user – -Xtrace:maximal=mt,trigger= method{<name>,sysdump|heapdump} – com.ibm.jvm.Dump.JavaDump()/HeapDump() – Health Center  Oracle JVMs: HPROF dump  Visualization available in IBM Memory Analyzer – -XX:+HeapDumpOnOutOfMemoryError – jmap -dump:format=b – JConsole – Supports both IBM and HotSpot dumps – Provides leak and footprint analysis – Provides heap and application visualization © 2014 18 IBM Corporation
  • 19. Java Heap Profiling: Heap Dump Analysis © 2014 19 IBM Corporation
  • 20. Debugging from Dumps © 2014 20 IBM Corporation
  • 21. Debugging from Dumps ● System dumps and HPROF dumps contain Object fields and values ● System dumps also have thread stacks and local variables ● Provides visibility into code flow ● Zero ongoing performance overhead ● Dump time is ~2s/GB ● Makes it possible to diagnose a much wider set of issues ● Exceptions: ability to look at data not exposed in the message ● Functional Issues: possible to look at the data being acted on © 2014 21 IBM Corporation
  • 22. Exceptions ● java.net.ConnectException java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:352) at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:214) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:201) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:377) ● Stack trace in Memory Analyzer gives access to local variables - host Name = Bailey-W530 - port = 100 © 2014 22 IBM Corporation
  • 23. Functional Issues ● java.lang.OutOfMemoryError allocating a 1,129,665,376 byte object at com/ibm/wsspi/security/token/WSOpaqueTokenHelper.readTokens(WSOpaqueTokenHelper.java:924) at com/ibm/wsspi/security/token/WSOpaqueTokenHelper.createTokenHolderListFromOpaqueToken(WSOpaqueTokenHelper.java:844) at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl.fromBytesInDomain(MessagingEngineIdentityImpl.java:439) at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl.access$200(MessagingEngineIdentityImpl.java:91) at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl$2.run(MessagingEngineIdentityImpl.java:299) at com/ibm/ws/sib/security/impl/MessagingEngineIdentityImpl$2.run(MessagingEngineIdentityImpl.java:293) at com/ibm/ws/sib/security/impl/BusUtilities.doInBusDomain(BusUtilities.java:115) ● The readTokens method references a ByteArrayInputStream with a pos of 2369 ● Content of ByteArrayStream around 2369: ● Which converts to 1,129,665,364 © 2014 23 IBM Corporation
  • 24. Performance © 2014 24 IBM Corporation
  • 25. Performance Analysis  Need to look at each of the layers of the application: – Platform: Machine and Operating System resources – Runtime: Java heap resources – Application: Inefficient code, synchronization  Recommended to look at Platform and Runtime first – “Easy to resolve”  Biggest gains are in the application and back end responsiveness – OS and Java Runtime are already highly tuned and self adapting © 2014 25 IBM Corporation
  • 26. OS Level Memory Monitoring Linux: vmstat {interval} {samples} > vmstat.out procs -----------memory---------- -swap- --io-- --system-- ---cpu--- r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 17196 679860 1196656 2594884 0 0 1 4 0 0 0 0 100 0 0 0 17196 679868 1196656 2594884 0 0 0 40 1012 43 0 0 100 0 0 0 17196 679992 1196656 2594884 0 0 0 3 1004 43 0 0 100 0 top -H -b -c > top_threads.out Windows: “perfmon”: Process > Page Faults/sec Process > %Processor Time Network > Output Queue Length Physical Disk > Current Disk Queue Length Can be collected to CSV file top - 15:46:52 up 178 days, 4:53, 2 users, load average: 0.31, 0.08, 0.02 Tasks: 77 total, 2 running, 74 sleeping, 1 stopped, 0 zombie Cpu(s): 24.6% us, 0.5% sy, 0.0% ni, 74.9% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 5591016k total, 5416896k used, 174120k free, 1196656k buffers Swap: 2104472k total, 17196k used, 2087276k free, 2594884k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 8502 user1 25 0 599m 466m 5212 R 99.9 8.5 0:23.92 java 7547 root 15 0 33472 2916 1144 S 0.3 0.1 778:17.98 X 1 root 16 0 656 228 192 S 0.0 0.0 0:07.43 init © 2014 26 IBM Corporation
  • 27. Garbage Collection Monitoring  IBM JVMs: – -verbose:gc – -Xverbosegclog:<name>,X,Y  Oracle JVMs: – -XX:+PrintGCDateStamps – -XX:+PrintGCDetails – -XX:+PrintGCTimeStamps – -Xloggc:<name>  Visualization available in GCMV for both IBM and Oracle verbose:gc © 2014 27 IBM Corporation
  • 28. Runtime GC Monitoring  IBM Health Center (IBM JVMs*) – -Xhealthcenter  Used Heap and Pause Times  Allocation Profiling  Oracle Mission Control (HotSpot JVMs) – -XX:+UnlockCommercialFeatures – -XX:+FlightRecorder  Used Heap and Pause Times  Allocation profiling © 2014 28 IBM Corporation
  • 29. Application method CPU usage  IBM Health Center (IBM JVMs*) – -Xhealthcenter  CPU usage per method  Method call graphs  Oracle Mission Control (HotSpot JVMs) – -XX:+UnlockCommercialFeatures – -XX:+FlightRecorder  CPU usage per method  Method call graphs © 2014 29 IBM Corporation
  • 30. Application lock usage  IBM Health Center (IBM JVMs*) – -Xhealthcenter  Contention frequency and time  Lock hold time  Oracle Mission Control (HotSpot JVMs) – -XX:+UnlockCommercialFeatures – -XX:+FlightRecorder  Contention frequency and time  Lock hold time © 2014 30 IBM Corporation
  • 31. Questions? © 2014 31 IBM Corporation
  • 32. IBM Developer Kits for Java ibm.biz/javasdk WebShere Liberty Profile wasdev.net IBM Bluemix ibm.com/bluemix IBM Developer Kits for Node.js ibm.biz/nodesdk © 2014 32 IBM Corporation
  • 33. www.ibm.com/developer Discover new technical resources. ibm.biz/javaone2014 Visit Booth 5511 to learn about Cloud, DevOps and Mobile solutions © 2014 IBM Corporation Develop your coding skills. Connect with developers.
  • 34. Copyright and Trademarks © IBM Corporation 2013. All Rights Reserved. IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of International Business Machines Corp., and 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 – see the IBM “Copyright and trademark information” page at URL: www.ibm.com/legal/copytrade.shtml © 2014 34 IBM Corporation
  • 35. © 2014 35 IBM Corporation