SlideShare a Scribd company logo
1 of 45
Download to read offline
JDK tools for performance
       diagnostics
       Dror Bereznitsky
     Director of Technologies, AlphaCSP
Introduction


Application to slow ?




  Image courtesy of WTL photos - flickr

                                          2
Introduction



Leaking
Memory
   ?

  Image courtesy of neoliminal- flickr

                                         3
Intoduction

          Suffering from deadlocks ?




  Image courtesy of hfb - flickr

                                       4
Introduction




     The JDK has tools that can help you …




Image courtesy of docman - flickr

                                             5
JDK tools for performance diag.

   • JDK tools for performance
     diagnostics:
                   VisualVM                   jconsole
                   BTrace                     jstat
                   jhat                       jinfo
                                               jps
                   jmap
                                               jstack



Image courtesy of dodgechallenger1 - flickr

                                                           6
VisualVM




           7
VisualVM

• Java troubleshooting tool
• Visual tool integrating several
  command line JDK tools and much
  more
• For development and production
  time




                                8
VisualVM Features


• Display local/remote Java
  applications
• Monitor memory and threads
• Take and browse heap +
  thread dumps
• Extensible with plugins
• Attach API or JMX


                               9
VisualVM Plugins

 • MBean browser
 • Visual GC
 • Memory sampler
 • Profiler – CPU, Memory
 • BTrace plugin
 • Direct buffers monitor (JDK 7)
 • Many more …


                                    10
VisualVM Feature Matrix

                     JDK 1.4.2   JDK 5   JDK 6   JDK 6
                                         Local   Remote
 Overview                                       
 System properties                         
 Monitor                                        
 Threads                                         
 Profiler                                  
 Thread Dump                               
 Heap Dump                                 
 Heam Dump OOME                            
 MBean Browser                                   
 JConsole plugins                                


                                                          11
Supported VMs

 Java VM        Remarks
 Sun JDK
 Open JDK
 Apple JDK
 Oracle JRockit
 IBM J9         Using JMX only
 HP-UX JDK
 SAP JDK        Requires the VisualVM
                Extensions plugin

                                        12
Getting Started


 • Version 1.0 ships with JDK6 since
   update 7
   • Look for jvisualvm in your JDK bin directory
 • Version 1.1.1 now ships with JDK6
   update 14
 • Latest version can be downloaded
   from https://visualvm.dev.java.net




                                                    13
The Demo Application




                       14
VisualVM Demo




    VisualVM
      Demo

                15
Working With Remote Applications

 • Start a jstatd daemon on the
   remote host
   • Allow remote monitoring tools to attach
     to running JVMs
   • May have security implications
 • Add the remote host to the
   ‘Remote’ node in the Applications
   window



                                               16
Extending VisualVM

What is VisualVM, really?
Generic desktop application
 infrastructure for analyzing sources
 of data.
Default data sources
  • Applications
  • Hosts
  • Dumps
  • Snapshots

                                        17
Extending VisualVM

 • Why you would want to extend
   VisualVM:
   • Tool-Centric
     You have a monitoring or management
     tool that you want to make available to
     VisualVM
      • BTrace plugin
   • Application-Centric
     You have an application with specific
     monitoring/management needs
      • Glassfish plugin


                                               18
Extending VisualVM


• What Can You Create?
  • Tabs: Main tabs, Sub tabs
  • Actions: Menu items, Toolbar
    buttons
  • Application Types
  • Data Sources




                                   19
Getting Started With Extending VisualVM


• Install JDK 6
• Read VisualVM API Javadoc &
  Tutorials
• Create VisualVM modules
   • Netbeans IDE
• VisualVM
  samples
  collection


                                          20
VisualVM Usage Scenarios

 • General health monitoring
 • Diagnose specific problems
   • Memory leaks
   • Deadlocks
   • Excessive use of finalizers
   • Hot lock contention
   • Hung process




                                   21
BTrace




         22
BTrace

 • Dynamic tracing tool for the Java
   platform
 • Safe – read, no write
 • Low-overhead
 • Tracing code is written in Java
 • Available as a VisualVM plugin or
   as a command line tool



                                   23
Dynamic Tracing

 • Works by dynamically
   instrumenting classes of a
   running Java program – using
   ASM 3.0
    • ASM is an all purpose Java bytecode
      manipulation and analysis framework
 • Inserts tracing actions by hot-
   swapping the traced program
   classes

                                            24
BTrace HelloWorld Example

 import com.sun.btrace.annotations.*;
 import static com.sun.btrace.BTraceUtils.*;
 @BTrace
 public class HelloWorld {
   @OnMethod(
       clazz="java.lang.Thread",
       method="start"
   )
   public static void func() {
       println("about to start a thread!");
   }
 }

                                               25
BTrace Terminology


 • Probe Point
   • "location" or "event" at which a set of tracing
     statements are executed.
 • Trace Actions/Actions
   • Trace statements that are executed whenever
     a probe "fires".
 • Action Methods
   • Trace statements that are executed when a
     probe fires
   • defined inside a static method
   • Such methods are called "action" methods.

                                                       26
BTrace HelloWorld Example

 import com.sun.btrace.annotations.*;
 import static com.sun.btrace.BTraceUtils.*;
 @BTrace
 public class HelloWorld {
   @OnMethod(
       clazz="java.lang.Thread",
       method="start"                 Probe Point

   )
   public static void func() {
       println("about to start a thread!"); Action Method
   }
 }

                                                      27
Some BTrace Annotations


 • @OnMethod
   • Specify target class(es), target
     method(s) and "location(s)" within the
     method(s)
 • @OnLowMemory
   • Trace memory threshold exceed event
 • @OnTimer
   • Specify tracing actions that have to run
     periodically once every N milliseconds

                                                28
BTrace Restrictions



 • can not create new objects.
 • can not create new arrays.
 • can not throw exceptions.
 • can not catch exceptions.
 • can not have loops (for, while,
   do..while)
 • Almost everything is restricted …


                                       29
com.sun.btrace.BTraceUtils


 • Contains 270 public static methods
   which may be called from a
   BTrace script
 • Many useful methods:
    • deadlocks - prints the Java level
      deadlocks detected (if any)
    • dumpHeap - dump the snapshot of the
      Java heap
    • jstack - Prints the java stack trace of
      the current thread
                                            30
Getting Started

 • BTrace is available as a VisualVM
   plugin
 • Requires VisualVM 1.0.1+
 • Available at the BTrace plugin center -
   https://btrace.dev.java.net/uc/updates.xml




                                            31
BTrace Demo




              Demo


                     32
BTrace Demo Source


@BTrace
public class SizeOfStatusCache {
    @OnMethod(
          clazz = "com.alphacsp.performance.seminar.twitter.Main",
          method = "pollForNewStatuses",
          location = @Location(Kind.RETURN))
    public static void onNewStatuses(Object obj) {
          List statusCache =
                    (List) get(field(classOf(obj), "statusCache", true), obj);
          println(concat("Number of cached statuses: ",
                    str(size(statusCache))));
    }
}




                                                                                 33
BTrace Usage Scenarios


 • Fine grained performance
   analysis
 • Runtime profiling and monitoring
 • Collecting statistics
 • When no graphic user interface
   available



                                  34
jhat




       jhat



              35
jhat

 • Java Heap Analysis Tool
 • Parses a java heap dump and
   launches a web server
 • Basic web interface for browsing
   the heap dump
 • Useful for analyzing memory
   leaks



                                      36
jhat Features

 • View all class instances
 • View class classloader
 • View all references to an object
 • View reference chains from
   Rootset
 • Use OQL (Object Query
   Language) to query heap dumps



                                      37
OQL


• SQL-like query language to query
  Java heap
• Based on JavaScript expression
  language
• Built-in objects and functions
• OQL help is available from the
  jhat OQL screen



                                 38
Getting Started

C:jdk1.6.0_13bin>jhat -J-mx512m c:heapdump-
  1245057502890.hprof
Reading from c:heapdump-1245057502890.hprof...
Dump file created Mon Jun 15 12:18:22 IDT 2009
Snapshot read, resolving...
Resolving 120908 objects...
Chasing references, expect 24
  dots........................
Eliminating duplicate
  references........................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.




                                                  39
jhat demo




            jhat Demo

                        40
jhat Usage Scenarios

 • When analyzing large heap
   dumps – can use a remote
   powerful server
 • When you do not have a graphic
   user interface
 • If you want to perform smart
   queries on heap content



                                    41
Summary




          Summary


                    42
Summary

 • The JDK contains useful
   performance diagnostics tools
 • These tools can be used for
   detecting, analyzing and solving
   performance related issues




                                      43
References

 • Monitoring and Troubleshooting Java
   applications using JDK tools (PDF)
 • VisualVM
 • VisualVM Sample Collection
 • TS-4247 Getting More Out of the Java
   VisualVM Tool (PDF)
 • btrace
 • ASM
 • jhat



                                          44
Thank You 



              45

More Related Content

What's hot

Android training in Noida
Android training in NoidaAndroid training in Noida
Android training in NoidaSeoClass
 
Five android architecture
Five android architectureFive android architecture
Five android architectureTomislav Homan
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DaliaAboSheasha
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android ApplicationNandini Prabhu
 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Viswanath J
 
Android application development
Android application developmentAndroid application development
Android application developmentslidesuren
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)Werner Keil
 
Android Development
Android DevelopmentAndroid Development
Android Developmentmclougm4
 
Design Patterns in iOS
Design Patterns in iOSDesign Patterns in iOS
Design Patterns in iOSYi-Shou Chen
 
Backbone JS for mobile apps
Backbone JS for mobile appsBackbone JS for mobile apps
Backbone JS for mobile appsIvano Malavolta
 
Mobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & TestingMobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & TestingSoftware Guru
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with JavaFabrizio Giudici
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaIvan Verhun
 
Case Study: Cool Clock - An Intro to Android Development
Case Study: Cool Clock - An Intro to Android DevelopmentCase Study: Cool Clock - An Intro to Android Development
Case Study: Cool Clock - An Intro to Android DevelopmentRichard Creamer
 

What's hot (20)

Javantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin ToshevJavantura v4 - Security architecture of the Java platform - Martin Toshev
Javantura v4 - Security architecture of the Java platform - Martin Toshev
 
SeaJUG 5 15-2018
SeaJUG 5 15-2018SeaJUG 5 15-2018
SeaJUG 5 15-2018
 
Android Anatomy
Android  AnatomyAndroid  Anatomy
Android Anatomy
 
Android training in Noida
Android training in NoidaAndroid training in Noida
Android training in Noida
 
iOS Design Patterns
iOS Design PatternsiOS Design Patterns
iOS Design Patterns
 
Five android architecture
Five android architectureFive android architecture
Five android architecture
 
DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11DevNexus 2019: Migrating to Java 11
DevNexus 2019: Migrating to Java 11
 
Developing for Android-Types of Android Application
Developing for Android-Types of Android ApplicationDeveloping for Android-Types of Android Application
Developing for Android-Types of Android Application
 
Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009Inside the Android application framework - Google I/O 2009
Inside the Android application framework - Google I/O 2009
 
Android application development
Android application developmentAndroid application development
Android application development
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
Enterprise 2.0 using Social Frameworks like Agorava (SMWHH 2014)
 
Using the Splunk Java SDK
Using the Splunk Java SDKUsing the Splunk Java SDK
Using the Splunk Java SDK
 
Android Development
Android DevelopmentAndroid Development
Android Development
 
Design Patterns in iOS
Design Patterns in iOSDesign Patterns in iOS
Design Patterns in iOS
 
Backbone JS for mobile apps
Backbone JS for mobile appsBackbone JS for mobile apps
Backbone JS for mobile apps
 
Mobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & TestingMobile Day - Intel XDK & Testing
Mobile Day - Intel XDK & Testing
 
blueMarine photographic workflow with Java
blueMarine photographic workflow with JavablueMarine photographic workflow with Java
blueMarine photographic workflow with Java
 
From Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@LohikaFrom Pilot to Product - Morning@Lohika
From Pilot to Product - Morning@Lohika
 
Case Study: Cool Clock - An Intro to Android Development
Case Study: Cool Clock - An Intro to Android DevelopmentCase Study: Cool Clock - An Intro to Android Development
Case Study: Cool Clock - An Intro to Android Development
 

Viewers also liked

JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...PaulThwaite
 
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at  OSCON 2016]Java 8 Puzzlers [as presented at  OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]Baruch Sadogursky
 
Escucha la radio
Escucha la radioEscucha la radio
Escucha la radioRosyross
 
Foro3 G1 Documento Padres De Familia
Foro3 G1 Documento Padres De FamiliaForo3 G1 Documento Padres De Familia
Foro3 G1 Documento Padres De FamiliaMarco AP
 
Office 365 NextGen Portals presents the video portal
Office 365 NextGen Portals presents the video portalOffice 365 NextGen Portals presents the video portal
Office 365 NextGen Portals presents the video portalJasper Oosterveld
 
qualcomm annual reports 1999
qualcomm annual reports 1999qualcomm annual reports 1999
qualcomm annual reports 1999finance43
 
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?leidylara2000
 
Tarea tutorial 2
Tarea tutorial 2Tarea tutorial 2
Tarea tutorial 2DALYN110776
 
Erfolg Ausgabe 04/2010 vom 7.05.2010
Erfolg Ausgabe 04/2010 vom 7.05.2010Erfolg Ausgabe 04/2010 vom 7.05.2010
Erfolg Ausgabe 04/2010 vom 7.05.2010Netzwerk-Verlag
 
Big Fish Films
Big Fish FilmsBig Fish Films
Big Fish Filmsjeffweis1
 
Channel Based Io
Channel Based IoChannel Based Io
Channel Based IoBharat17485
 
Alice charles conference_the_potential_of_landbanking_28.04
Alice charles conference_the_potential_of_landbanking_28.04Alice charles conference_the_potential_of_landbanking_28.04
Alice charles conference_the_potential_of_landbanking_28.04Alice Charles
 
Beyond buzz the next generation of word-of-mouth marketing
Beyond buzz the next generation of word-of-mouth marketingBeyond buzz the next generation of word-of-mouth marketing
Beyond buzz the next generation of word-of-mouth marketingMegaTrends
 
Shakti Bhog's TV series with maximum viewership
Shakti Bhog's TV series with maximum viewershipShakti Bhog's TV series with maximum viewership
Shakti Bhog's TV series with maximum viewershipThe BharatPutra
 
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia quaintenthusias03
 
Unit2 the body
Unit2 the bodyUnit2 the body
Unit2 the bodyHULSB
 
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...ChrisTian Romero
 

Viewers also liked (20)

JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
JavaOne 2012 CON 3961 Innovative Testing Techniques Using Bytecode Instrument...
 
Java 8 Puzzlers [as presented at OSCON 2016]
Java 8 Puzzlers [as presented at  OSCON 2016]Java 8 Puzzlers [as presented at  OSCON 2016]
Java 8 Puzzlers [as presented at OSCON 2016]
 
Escucha la radio
Escucha la radioEscucha la radio
Escucha la radio
 
Foro3 G1 Documento Padres De Familia
Foro3 G1 Documento Padres De FamiliaForo3 G1 Documento Padres De Familia
Foro3 G1 Documento Padres De Familia
 
Office 365 NextGen Portals presents the video portal
Office 365 NextGen Portals presents the video portalOffice 365 NextGen Portals presents the video portal
Office 365 NextGen Portals presents the video portal
 
qualcomm annual reports 1999
qualcomm annual reports 1999qualcomm annual reports 1999
qualcomm annual reports 1999
 
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?
¿POR QUÉ LA EDUCACIÓN EN COLOMBIA ES PÉSIMA?
 
Tarea tutorial 2
Tarea tutorial 2Tarea tutorial 2
Tarea tutorial 2
 
Erfolg Ausgabe 04/2010 vom 7.05.2010
Erfolg Ausgabe 04/2010 vom 7.05.2010Erfolg Ausgabe 04/2010 vom 7.05.2010
Erfolg Ausgabe 04/2010 vom 7.05.2010
 
Big Fish Films
Big Fish FilmsBig Fish Films
Big Fish Films
 
Channel Based Io
Channel Based IoChannel Based Io
Channel Based Io
 
Alice charles conference_the_potential_of_landbanking_28.04
Alice charles conference_the_potential_of_landbanking_28.04Alice charles conference_the_potential_of_landbanking_28.04
Alice charles conference_the_potential_of_landbanking_28.04
 
Beyond buzz the next generation of word-of-mouth marketing
Beyond buzz the next generation of word-of-mouth marketingBeyond buzz the next generation of word-of-mouth marketing
Beyond buzz the next generation of word-of-mouth marketing
 
Alitara interim management
Alitara interim managementAlitara interim management
Alitara interim management
 
Shakti Bhog's TV series with maximum viewership
Shakti Bhog's TV series with maximum viewershipShakti Bhog's TV series with maximum viewership
Shakti Bhog's TV series with maximum viewership
 
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia
Preparativos Para El Primer Dia De Guarderia
 
2013 03-lbf cv deck
2013 03-lbf cv deck2013 03-lbf cv deck
2013 03-lbf cv deck
 
Unit2 the body
Unit2 the bodyUnit2 the body
Unit2 the body
 
Los videojuegos.
Los videojuegos.Los videojuegos.
Los videojuegos.
 
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...
La transgresión del cretácico inferior en el margen andino (perú y ecuador) d...
 

Similar to JDK Tools For Performance Diagnostics

Jdk Tools For Performance Diagnostics
Jdk Tools For Performance DiagnosticsJdk Tools For Performance Diagnostics
Jdk Tools For Performance DiagnosticsDror Bereznitsky
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containersRed Hat Developers
 
A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node ibmwebspheresoftware
 
Micronaut Deep Dive - Devoxx Belgium 2019
Micronaut Deep Dive - Devoxx Belgium 2019Micronaut Deep Dive - Devoxx Belgium 2019
Micronaut Deep Dive - Devoxx Belgium 2019graemerocher
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningMichel Schildmeijer
 
Everything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native ImageEverything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native ImageAlina Yurenko
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination ExtRohit Kelapure
 
A Glance At The Java Performance Toolbox
 A Glance At The Java Performance Toolbox A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Byte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in JavaByte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in JavaAlex Moskvin
 
Android Application WebAPI Development Training
Android Application WebAPI Development TrainingAndroid Application WebAPI Development Training
Android Application WebAPI Development TrainingOESF Education
 
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
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK toolsHaribabu Nandyal Padmanaban
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9Ivan Krylov
 
Advanced Production Debugging
Advanced Production DebuggingAdvanced Production Debugging
Advanced Production DebuggingTakipi
 
OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012Wingston
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and ActivatorKevin Webber
 
Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Poonam Bajaj Parhar
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikEdgar Espina
 

Similar to JDK Tools For Performance Diagnostics (20)

Jdk Tools For Performance Diagnostics
Jdk Tools For Performance DiagnosticsJdk Tools For Performance Diagnostics
Jdk Tools For Performance Diagnostics
 
Commit to excellence - Java in containers
Commit to excellence - Java in containersCommit to excellence - Java in containers
Commit to excellence - Java in containers
 
A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node A Taste of Monitoring and Post Mortem Debugging with Node
A Taste of Monitoring and Post Mortem Debugging with Node
 
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion MiddlewareAMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
AMIS Oracle OpenWorld 2013 Review Part 3 - Fusion Middleware
 
Micronaut Deep Dive - Devoxx Belgium 2019
Micronaut Deep Dive - Devoxx Belgium 2019Micronaut Deep Dive - Devoxx Belgium 2019
Micronaut Deep Dive - Devoxx Belgium 2019
 
Oracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuningOracle WebLogic Diagnostics & Perfomance tuning
Oracle WebLogic Diagnostics & Perfomance tuning
 
Everything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native ImageEverything you need to know about GraalVM Native Image
Everything you need to know about GraalVM Native Image
 
Web Sphere Problem Determination Ext
Web Sphere Problem Determination ExtWeb Sphere Problem Determination Ext
Web Sphere Problem Determination Ext
 
A Glance At The Java Performance Toolbox
 A Glance At The Java Performance Toolbox A Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Surge2012
Surge2012Surge2012
Surge2012
 
Byte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in JavaByte code manipulation and instrumentalization in Java
Byte code manipulation and instrumentalization in Java
 
Android Application WebAPI Development Training
Android Application WebAPI Development TrainingAndroid Application WebAPI Development Training
Android Application WebAPI Development Training
 
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
 
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
Performance Tuning -  Memory leaks, Thread deadlocks, JDK toolsPerformance Tuning -  Memory leaks, Thread deadlocks, JDK tools
Performance Tuning - Memory leaks, Thread deadlocks, JDK tools
 
What to expect from Java 9
What to expect from Java 9What to expect from Java 9
What to expect from Java 9
 
Advanced Production Debugging
Advanced Production DebuggingAdvanced Production Debugging
Advanced Production Debugging
 
OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012OpenCV @ Droidcon 2012
OpenCV @ Droidcon 2012
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9Monitoring and Troubleshooting Tools in Java 9
Monitoring and Troubleshooting Tools in Java 9
 
Apache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip HanikApache Tomcat 7 by Filip Hanik
Apache Tomcat 7 by Filip Hanik
 

More from Baruch Sadogursky

DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...Baruch Sadogursky
 
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...Baruch Sadogursky
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...Baruch Sadogursky
 
Data driven devops as presented at QCon London 2018
Data driven devops as presented at QCon London 2018Data driven devops as presented at QCon London 2018
Data driven devops as presented at QCon London 2018Baruch Sadogursky
 
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018Baruch Sadogursky
 
Java Puzzlers NG S03 a DevNexus 2018
Java Puzzlers NG S03 a DevNexus 2018Java Puzzlers NG S03 a DevNexus 2018
Java Puzzlers NG S03 a DevNexus 2018Baruch Sadogursky
 
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
Where the Helm are your binaries? as presented at Canada Kubernetes MeetupsWhere the Helm are your binaries? as presented at Canada Kubernetes Meetups
Where the Helm are your binaries? as presented at Canada Kubernetes MeetupsBaruch Sadogursky
 
Data driven devops as presented at Codemash 2018
Data driven devops as presented at Codemash 2018Data driven devops as presented at Codemash 2018
Data driven devops as presented at Codemash 2018Baruch Sadogursky
 
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
A Research Study into DevOps Bottlenecks as presented at Codemash 2018A Research Study into DevOps Bottlenecks as presented at Codemash 2018
A Research Study into DevOps Bottlenecks as presented at Codemash 2018Baruch Sadogursky
 
Best Practices for Managing Docker Versions as presented at JavaOne 2017
Best Practices for Managing Docker Versions as presented at JavaOne 2017Best Practices for Managing Docker Versions as presented at JavaOne 2017
Best Practices for Managing Docker Versions as presented at JavaOne 2017Baruch Sadogursky
 
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
Troubleshooting & Debugging Production Microservices in Kubernetes as present...Troubleshooting & Debugging Production Microservices in Kubernetes as present...
Troubleshooting & Debugging Production Microservices in Kubernetes as present...Baruch Sadogursky
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017Baruch Sadogursky
 
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...Baruch Sadogursky
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...Baruch Sadogursky
 
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...Baruch Sadogursky
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...Baruch Sadogursky
 
Let’s Wing It: A Study in DevRel Strategy
 Let’s Wing It: A Study in DevRel Strategy Let’s Wing It: A Study in DevRel Strategy
Let’s Wing It: A Study in DevRel StrategyBaruch Sadogursky
 
Log Driven First Class Customer Support at Scale
Log Driven First Class Customer Support at ScaleLog Driven First Class Customer Support at Scale
Log Driven First Class Customer Support at ScaleBaruch Sadogursky
 
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
 
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Baruch Sadogursky
 

More from Baruch Sadogursky (20)

DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
DevOps Patterns & Antipatterns for Continuous Software Updates @ NADOG April ...
 
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
DevOps Patterns & Antipatterns for Continuous Software Updates @ DevOps.com A...
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Oracle Code NY...
 
Data driven devops as presented at QCon London 2018
Data driven devops as presented at QCon London 2018Data driven devops as presented at QCon London 2018
Data driven devops as presented at QCon London 2018
 
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
A Research Study Into DevOps Bottlenecks as presented at Oracle Code LA 2018
 
Java Puzzlers NG S03 a DevNexus 2018
Java Puzzlers NG S03 a DevNexus 2018Java Puzzlers NG S03 a DevNexus 2018
Java Puzzlers NG S03 a DevNexus 2018
 
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
Where the Helm are your binaries? as presented at Canada Kubernetes MeetupsWhere the Helm are your binaries? as presented at Canada Kubernetes Meetups
Where the Helm are your binaries? as presented at Canada Kubernetes Meetups
 
Data driven devops as presented at Codemash 2018
Data driven devops as presented at Codemash 2018Data driven devops as presented at Codemash 2018
Data driven devops as presented at Codemash 2018
 
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
A Research Study into DevOps Bottlenecks as presented at Codemash 2018A Research Study into DevOps Bottlenecks as presented at Codemash 2018
A Research Study into DevOps Bottlenecks as presented at Codemash 2018
 
Best Practices for Managing Docker Versions as presented at JavaOne 2017
Best Practices for Managing Docker Versions as presented at JavaOne 2017Best Practices for Managing Docker Versions as presented at JavaOne 2017
Best Practices for Managing Docker Versions as presented at JavaOne 2017
 
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
Troubleshooting & Debugging Production Microservices in Kubernetes as present...Troubleshooting & Debugging Production Microservices in Kubernetes as present...
Troubleshooting & Debugging Production Microservices in Kubernetes as present...
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at Devoxx 2017
 
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
Amazon Alexa Skills vs Google Home Actions, the Big Java VUI Faceoff as prese...
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at DevOps Days Be...
 
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
Java Puzzlers NG S02: Down the Rabbit Hole as it was presented at The Pittsbu...
 
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
DevOps @Scale (Greek Tragedy in 3 Acts) as it was presented at The Pittsburgh...
 
Let’s Wing It: A Study in DevRel Strategy
 Let’s Wing It: A Study in DevRel Strategy Let’s Wing It: A Study in DevRel Strategy
Let’s Wing It: A Study in DevRel Strategy
 
Log Driven First Class Customer Support at Scale
Log Driven First Class Customer Support at ScaleLog Driven First Class Customer Support at Scale
Log Driven First Class Customer Support at Scale
 
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOps
 
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
[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
 

Recently uploaded (20)

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
[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
 

JDK Tools For Performance Diagnostics

  • 1. JDK tools for performance diagnostics Dror Bereznitsky Director of Technologies, AlphaCSP
  • 2. Introduction Application to slow ? Image courtesy of WTL photos - flickr 2
  • 3. Introduction Leaking Memory ? Image courtesy of neoliminal- flickr 3
  • 4. Intoduction Suffering from deadlocks ? Image courtesy of hfb - flickr 4
  • 5. Introduction The JDK has tools that can help you … Image courtesy of docman - flickr 5
  • 6. JDK tools for performance diag. • JDK tools for performance diagnostics:  VisualVM  jconsole  BTrace  jstat  jhat  jinfo  jps  jmap  jstack Image courtesy of dodgechallenger1 - flickr 6
  • 8. VisualVM • Java troubleshooting tool • Visual tool integrating several command line JDK tools and much more • For development and production time 8
  • 9. VisualVM Features • Display local/remote Java applications • Monitor memory and threads • Take and browse heap + thread dumps • Extensible with plugins • Attach API or JMX 9
  • 10. VisualVM Plugins • MBean browser • Visual GC • Memory sampler • Profiler – CPU, Memory • BTrace plugin • Direct buffers monitor (JDK 7) • Many more … 10
  • 11. VisualVM Feature Matrix JDK 1.4.2 JDK 5 JDK 6 JDK 6 Local Remote Overview     System properties  Monitor     Threads    Profiler  Thread Dump  Heap Dump  Heam Dump OOME  MBean Browser    JConsole plugins    11
  • 12. Supported VMs Java VM Remarks Sun JDK Open JDK Apple JDK Oracle JRockit IBM J9 Using JMX only HP-UX JDK SAP JDK Requires the VisualVM Extensions plugin 12
  • 13. Getting Started • Version 1.0 ships with JDK6 since update 7 • Look for jvisualvm in your JDK bin directory • Version 1.1.1 now ships with JDK6 update 14 • Latest version can be downloaded from https://visualvm.dev.java.net 13
  • 15. VisualVM Demo VisualVM Demo 15
  • 16. Working With Remote Applications • Start a jstatd daemon on the remote host • Allow remote monitoring tools to attach to running JVMs • May have security implications • Add the remote host to the ‘Remote’ node in the Applications window 16
  • 17. Extending VisualVM What is VisualVM, really? Generic desktop application infrastructure for analyzing sources of data. Default data sources • Applications • Hosts • Dumps • Snapshots 17
  • 18. Extending VisualVM • Why you would want to extend VisualVM: • Tool-Centric You have a monitoring or management tool that you want to make available to VisualVM • BTrace plugin • Application-Centric You have an application with specific monitoring/management needs • Glassfish plugin 18
  • 19. Extending VisualVM • What Can You Create? • Tabs: Main tabs, Sub tabs • Actions: Menu items, Toolbar buttons • Application Types • Data Sources 19
  • 20. Getting Started With Extending VisualVM • Install JDK 6 • Read VisualVM API Javadoc & Tutorials • Create VisualVM modules • Netbeans IDE • VisualVM samples collection 20
  • 21. VisualVM Usage Scenarios • General health monitoring • Diagnose specific problems • Memory leaks • Deadlocks • Excessive use of finalizers • Hot lock contention • Hung process 21
  • 22. BTrace 22
  • 23. BTrace • Dynamic tracing tool for the Java platform • Safe – read, no write • Low-overhead • Tracing code is written in Java • Available as a VisualVM plugin or as a command line tool 23
  • 24. Dynamic Tracing • Works by dynamically instrumenting classes of a running Java program – using ASM 3.0 • ASM is an all purpose Java bytecode manipulation and analysis framework • Inserts tracing actions by hot- swapping the traced program classes 24
  • 25. BTrace HelloWorld Example import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; @BTrace public class HelloWorld { @OnMethod( clazz="java.lang.Thread", method="start" ) public static void func() { println("about to start a thread!"); } } 25
  • 26. BTrace Terminology • Probe Point • "location" or "event" at which a set of tracing statements are executed. • Trace Actions/Actions • Trace statements that are executed whenever a probe "fires". • Action Methods • Trace statements that are executed when a probe fires • defined inside a static method • Such methods are called "action" methods. 26
  • 27. BTrace HelloWorld Example import com.sun.btrace.annotations.*; import static com.sun.btrace.BTraceUtils.*; @BTrace public class HelloWorld { @OnMethod( clazz="java.lang.Thread", method="start" Probe Point ) public static void func() { println("about to start a thread!"); Action Method } } 27
  • 28. Some BTrace Annotations • @OnMethod • Specify target class(es), target method(s) and "location(s)" within the method(s) • @OnLowMemory • Trace memory threshold exceed event • @OnTimer • Specify tracing actions that have to run periodically once every N milliseconds 28
  • 29. BTrace Restrictions • can not create new objects. • can not create new arrays. • can not throw exceptions. • can not catch exceptions. • can not have loops (for, while, do..while) • Almost everything is restricted … 29
  • 30. com.sun.btrace.BTraceUtils • Contains 270 public static methods which may be called from a BTrace script • Many useful methods: • deadlocks - prints the Java level deadlocks detected (if any) • dumpHeap - dump the snapshot of the Java heap • jstack - Prints the java stack trace of the current thread 30
  • 31. Getting Started • BTrace is available as a VisualVM plugin • Requires VisualVM 1.0.1+ • Available at the BTrace plugin center - https://btrace.dev.java.net/uc/updates.xml 31
  • 32. BTrace Demo Demo 32
  • 33. BTrace Demo Source @BTrace public class SizeOfStatusCache { @OnMethod( clazz = "com.alphacsp.performance.seminar.twitter.Main", method = "pollForNewStatuses", location = @Location(Kind.RETURN)) public static void onNewStatuses(Object obj) { List statusCache = (List) get(field(classOf(obj), "statusCache", true), obj); println(concat("Number of cached statuses: ", str(size(statusCache)))); } } 33
  • 34. BTrace Usage Scenarios • Fine grained performance analysis • Runtime profiling and monitoring • Collecting statistics • When no graphic user interface available 34
  • 35. jhat jhat 35
  • 36. jhat • Java Heap Analysis Tool • Parses a java heap dump and launches a web server • Basic web interface for browsing the heap dump • Useful for analyzing memory leaks 36
  • 37. jhat Features • View all class instances • View class classloader • View all references to an object • View reference chains from Rootset • Use OQL (Object Query Language) to query heap dumps 37
  • 38. OQL • SQL-like query language to query Java heap • Based on JavaScript expression language • Built-in objects and functions • OQL help is available from the jhat OQL screen 38
  • 39. Getting Started C:jdk1.6.0_13bin>jhat -J-mx512m c:heapdump- 1245057502890.hprof Reading from c:heapdump-1245057502890.hprof... Dump file created Mon Jun 15 12:18:22 IDT 2009 Snapshot read, resolving... Resolving 120908 objects... Chasing references, expect 24 dots........................ Eliminating duplicate references........................ Snapshot resolved. Started HTTP server on port 7000 Server is ready. 39
  • 40. jhat demo jhat Demo 40
  • 41. jhat Usage Scenarios • When analyzing large heap dumps – can use a remote powerful server • When you do not have a graphic user interface • If you want to perform smart queries on heap content 41
  • 42. Summary Summary 42
  • 43. Summary • The JDK contains useful performance diagnostics tools • These tools can be used for detecting, analyzing and solving performance related issues 43
  • 44. References • Monitoring and Troubleshooting Java applications using JDK tools (PDF) • VisualVM • VisualVM Sample Collection • TS-4247 Getting More Out of the Java VisualVM Tool (PDF) • btrace • ASM • jhat 44