SlideShare a Scribd company logo
1 of 8
Ali Bahu
02/24/2013
JHICCUP
INTRODUCTION
 jHiccup is an open source tool designed to measure the pauses
and stalls (or “hiccups”) associated with an application’s underlying
Java runtime platform. The new tool captures the aggregate
effects of the Java Virtual Machine (JVM), operating system,
hypervisor (if used) and hardware on application stalls and
response time.
 jHiccup allows developers, systems operators and performance
engineers to easily create and analyze response time profiles, and
to clearly identify whether causes of application delays reside in
the application code or in the underlying runtime platform. jHiccup
is completely transparent and non-intrusive to the application, has
zero performance overhead in operation, and is compatible with all
Java applications using any JVM.
MEASUREMENTS
MEASUREMENTS
 The hiccups measured are NOT stalls caused by the application's
code. They are stalls caused by the platform that would be visible
to and affect any application thread running on the platform at the
time of the stall. jHiccup shows graphically via 'Hiccup Charts' just
how responsive the runtime platform really is. By understanding
the pauses associated with the underlying platform, IT
organizations can better isolate latency and delays and the
contributing components.
 If jHiccup experiences and records a certain level of measured
platform hiccups, it is safe to assume that the application running
on the same JVM platform during that time had experienced
hiccup/stall effects that are at least as large as the measured
level.
FUNCTIONALITIES
 jHiccup helps you avoid common pitfalls in application
performance characterization. Most performance reporting
assumes a normal distribution of response times (single mode),
yet most 'real' systems are multi-modal due to GC pauses, OS or
virtualization 'hiccups', swapping, etc. jHiccup can help you find
and identify the causes of these delays that affect response times.
 jHiccup works with any Java application. It is non-intrusive, runs
on all major operating systems and is compatible with all JVMs.
 jHiccup is run as a wrapper around other applications so that
measurements can be done without any changes to application
code.
 Other tools focus on the application itself; jHiccup is unique in
looking at the underlying platform.
HOW TO RUN JHICCUP
 To use jHiccup, include the script command in your Java application start
command.
For example:
If your program were normally executed as:
java <Java args> UsefulProgram -a -b –c
Then the launch line would become:
jHiccup java <Java args> UsefulProgram -a -b -c.
JHICCUP LOG FILES
 jHiccup records hiccup durations observed by the application it
wraps. It produces two log files that are updated at each recording
interval (which defaults to 5 seconds). The two log files are:
 hiccup.<identifier>.log:
A single line entry is appended to the log file at every
recording interval. Each entry line lists the hiccup duration of
certain percentiles (50%, 90%, Max) of samples collected in the past
a aecording interval, as well as aggregate percentiles (50%,
90%, 99%, 99.9%, 99.99%, Max) for samples accumulated since
the beginning of the jHiccup run.
 hiccup.<identifier>.hgrm:
This file is updated in it's entirety with each recording interval.
It contains detailed histogram data showing the distribution of
hiccup duration by percentile for the entire jHiccup run.
ANALYZING JHICCUP DATA &
CARTS
 The data collected by jHiccup represents actual stall times observed
on the runtime platform (at the JVM level and below) while the
application being monitored is actually running on it. While jHiccup
does not measure application response times, application response
time will inevitably include any stall times observed at the runtime
platform level. jHiccup's Hiccup Charts, at any time point and at any
percentile, represent the absolute "best case" scenario data for
application response times - the time in which an empty amount of
work could be done. jHiccup data and Hiccup Charts can quickly
identify whether application responsiveness issues are dominated by
application code or by the underlying runtime platform's behavior:
1. If application response time behavior is similar to that observed by jHiccup, observed as a
correlation of dominant stall events in time and of response time %'ile distribution and
magnitude, the runtime platform's behavior and occasional stalls are likely the dominant
factor in application responsiveness. Improvement in runtime stall behavior through
tuning or eliminating runtime stall causes will most likely improve the application response
time characteristics.
2. If application response time behavior does not correlate with jHiccup data and Hiccup
Charts, the application code and/or external resources are most likely the dominant
factor, and runtime tuning and improvements in the area of stalls and responsiveness are
unlikely to result in improved application response behavior.

More Related Content

Similar to Jhiccup

safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process controlNathiya Vaithi
 
Load Runner Methodology to Performance Testing
Load Runner Methodology to Performance TestingLoad Runner Methodology to Performance Testing
Load Runner Methodology to Performance Testingijtsrd
 
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31Shannon Krause
 
Java Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderJava Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderIsuru Perera
 
Java Performance & Profiling
Java Performance & ProfilingJava Performance & Profiling
Java Performance & ProfilingIsuru Perera
 
Testing project (basic)
Testing project (basic)Testing project (basic)
Testing project (basic)Lokesh Singrol
 
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 ToolsChris Bailey
 
HP Software Testing project (Advanced)
HP Software Testing project (Advanced)HP Software Testing project (Advanced)
HP Software Testing project (Advanced)Lokesh Singrol
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Ankita Tiwari
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaIsuru Perera
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONijseajournal
 
Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceIRJET Journal
 
Roboconf Detailed Presentation
Roboconf Detailed PresentationRoboconf Detailed Presentation
Roboconf Detailed PresentationVincent Zurczak
 
comparative study on cross platfom frameworks mobile apps
comparative study on cross platfom frameworks mobile appscomparative study on cross platfom frameworks mobile apps
comparative study on cross platfom frameworks mobile appsapurva vyas
 
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioMuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioJitendra Bafna
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and ProfilingWSO2
 

Similar to Jhiccup (20)

safety assurence in process control
safety assurence in process controlsafety assurence in process control
safety assurence in process control
 
Eclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three RuntimesEclipse - Single Source;Three Runtimes
Eclipse - Single Source;Three Runtimes
 
Load Runner Methodology to Performance Testing
Load Runner Methodology to Performance TestingLoad Runner Methodology to Performance Testing
Load Runner Methodology to Performance Testing
 
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31
HighLevelApplciationsForAccelerators_ShannonKrause_2009_07_31
 
Java Performance and Using Java Flight Recorder
Java Performance and Using Java Flight RecorderJava Performance and Using Java Flight Recorder
Java Performance and Using Java Flight Recorder
 
Java Performance & Profiling
Java Performance & ProfilingJava Performance & Profiling
Java Performance & Profiling
 
Performance testing wreaking balls
Performance testing wreaking ballsPerformance testing wreaking balls
Performance testing wreaking balls
 
Testing project (basic)
Testing project (basic)Testing project (basic)
Testing project (basic)
 
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
 
ES-CH5.ppt
ES-CH5.pptES-CH5.ppt
ES-CH5.ppt
 
HP Software Testing project (Advanced)
HP Software Testing project (Advanced)HP Software Testing project (Advanced)
HP Software Testing project (Advanced)
 
Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.Design the implementation of CDEx Robust DC Motor.
Design the implementation of CDEx Robust DC Motor.
 
p850-ries
p850-riesp850-ries
p850-ries
 
Software Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in JavaSoftware Profiling: Understanding Java Performance and how to profile in Java
Software Profiling: Understanding Java Performance and how to profile in Java
 
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISONSTATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
STATISTICAL ANALYSIS FOR PERFORMANCE COMPARISON
 
Scale and Load Testing of Micro-Service
Scale and Load Testing of Micro-ServiceScale and Load Testing of Micro-Service
Scale and Load Testing of Micro-Service
 
Roboconf Detailed Presentation
Roboconf Detailed PresentationRoboconf Detailed Presentation
Roboconf Detailed Presentation
 
comparative study on cross platfom frameworks mobile apps
comparative study on cross platfom frameworks mobile appscomparative study on cross platfom frameworks mobile apps
comparative study on cross platfom frameworks mobile apps
 
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.ioMuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
MuleSoft Surat Virtual Meetup#4 - Anypoint Monitoring and MuleSoft dataloader.io
 
Java Performance and Profiling
Java Performance and ProfilingJava Performance and Profiling
Java Performance and Profiling
 

More from Ali Bahu

Apache Ant
Apache AntApache Ant
Apache AntAli Bahu
 
Apache Ant
Apache AntApache Ant
Apache AntAli Bahu
 
EclipseMAT
EclipseMATEclipseMAT
EclipseMATAli Bahu
 
Cloud computing
Cloud computingCloud computing
Cloud computingAli Bahu
 
Pervasive computing
Pervasive computingPervasive computing
Pervasive computingAli Bahu
 

More from Ali Bahu (6)

Apache Ant
Apache AntApache Ant
Apache Ant
 
Apache Ant
Apache AntApache Ant
Apache Ant
 
EclipseMAT
EclipseMATEclipseMAT
EclipseMAT
 
Hadoop
HadoopHadoop
Hadoop
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
Pervasive computing
Pervasive computingPervasive computing
Pervasive computing
 

Recently uploaded

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 

Recently uploaded (20)

"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 

Jhiccup

  • 2. INTRODUCTION  jHiccup is an open source tool designed to measure the pauses and stalls (or “hiccups”) associated with an application’s underlying Java runtime platform. The new tool captures the aggregate effects of the Java Virtual Machine (JVM), operating system, hypervisor (if used) and hardware on application stalls and response time.  jHiccup allows developers, systems operators and performance engineers to easily create and analyze response time profiles, and to clearly identify whether causes of application delays reside in the application code or in the underlying runtime platform. jHiccup is completely transparent and non-intrusive to the application, has zero performance overhead in operation, and is compatible with all Java applications using any JVM.
  • 4. MEASUREMENTS  The hiccups measured are NOT stalls caused by the application's code. They are stalls caused by the platform that would be visible to and affect any application thread running on the platform at the time of the stall. jHiccup shows graphically via 'Hiccup Charts' just how responsive the runtime platform really is. By understanding the pauses associated with the underlying platform, IT organizations can better isolate latency and delays and the contributing components.  If jHiccup experiences and records a certain level of measured platform hiccups, it is safe to assume that the application running on the same JVM platform during that time had experienced hiccup/stall effects that are at least as large as the measured level.
  • 5. FUNCTIONALITIES  jHiccup helps you avoid common pitfalls in application performance characterization. Most performance reporting assumes a normal distribution of response times (single mode), yet most 'real' systems are multi-modal due to GC pauses, OS or virtualization 'hiccups', swapping, etc. jHiccup can help you find and identify the causes of these delays that affect response times.  jHiccup works with any Java application. It is non-intrusive, runs on all major operating systems and is compatible with all JVMs.  jHiccup is run as a wrapper around other applications so that measurements can be done without any changes to application code.  Other tools focus on the application itself; jHiccup is unique in looking at the underlying platform.
  • 6. HOW TO RUN JHICCUP  To use jHiccup, include the script command in your Java application start command. For example: If your program were normally executed as: java <Java args> UsefulProgram -a -b –c Then the launch line would become: jHiccup java <Java args> UsefulProgram -a -b -c.
  • 7. JHICCUP LOG FILES  jHiccup records hiccup durations observed by the application it wraps. It produces two log files that are updated at each recording interval (which defaults to 5 seconds). The two log files are:  hiccup.<identifier>.log: A single line entry is appended to the log file at every recording interval. Each entry line lists the hiccup duration of certain percentiles (50%, 90%, Max) of samples collected in the past a aecording interval, as well as aggregate percentiles (50%, 90%, 99%, 99.9%, 99.99%, Max) for samples accumulated since the beginning of the jHiccup run.  hiccup.<identifier>.hgrm: This file is updated in it's entirety with each recording interval. It contains detailed histogram data showing the distribution of hiccup duration by percentile for the entire jHiccup run.
  • 8. ANALYZING JHICCUP DATA & CARTS  The data collected by jHiccup represents actual stall times observed on the runtime platform (at the JVM level and below) while the application being monitored is actually running on it. While jHiccup does not measure application response times, application response time will inevitably include any stall times observed at the runtime platform level. jHiccup's Hiccup Charts, at any time point and at any percentile, represent the absolute "best case" scenario data for application response times - the time in which an empty amount of work could be done. jHiccup data and Hiccup Charts can quickly identify whether application responsiveness issues are dominated by application code or by the underlying runtime platform's behavior: 1. If application response time behavior is similar to that observed by jHiccup, observed as a correlation of dominant stall events in time and of response time %'ile distribution and magnitude, the runtime platform's behavior and occasional stalls are likely the dominant factor in application responsiveness. Improvement in runtime stall behavior through tuning or eliminating runtime stall causes will most likely improve the application response time characteristics. 2. If application response time behavior does not correlate with jHiccup data and Hiccup Charts, the application code and/or external resources are most likely the dominant factor, and runtime tuning and improvements in the area of stalls and responsiveness are unlikely to result in improved application response behavior.