DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Coding
  3. Java
  4. Capture Stalls in Your Java Application With jHiccup

Capture Stalls in Your Java Application With jHiccup

James Sugrue user avatar by
James Sugrue
CORE ·
Dec. 13, 11 · Interview
Like (0)
Save
Tweet
Share
8.85K Views

Join the DZone community and get the full member experience.

Join For Free

Measuring the performance of your Java application can be somewhat of a black art, but jHiccup looks to take the mystery out of your performance issues.
Just released under the Creative Commons Licence by Azul Systems, jHiccup will measure any hiccups (pauses or stalls). The beauty of this is that you can identify whether the cause of a stall is in your application code or the underlying runtime platform. As far as I know, no other Java performance tool does this.

The tool does not measure delays caused by the application's code, but instead captures the stalls caused exclusively by the underlying runtime platform that would be visible to and affect any application thread running at the time of the stall.

jHiccup runs with a clain of zero performance overhead in the running of your application. Getting it setup is easy. Just download the tool and start up your program with the appropriate jHiccup parameter.
For example if you start your program like:

    java MyApp 

you'll now use

    jHiccup java MyApp 


Pretty simple! Two log files are created, which can be loaded into Excel. You can get a Hiccup by Time Interval Chart, or a Hiccup by Percentile Distribution chart:
    


This produces some interesting data for you to analyze. Tips on how to interpret the data are provided at the Azul website

jHiccup data and Hiccup Charts can quickly identify whether application responsiveness issue are dominated by application code or by the undelying runtime platform's behavior:

  • If application response time behavior is similar to that observed by jHiccup, observed as a correlation of dopminant stall events in time and of response time %'ile distributioon and magnitude, the runtime platform's behavior and occasional stalls are likely the dominant factor in application responsiveness. Improvement the runtime stall behavior through tuning or eliminating runtime stall causes will most likely improve the application respnse time characteristics.

  • If application response time beahvior does not correlate with jHiccup data and Hiccup Charts, the application code and/or externalresources are most likely the dominant factor, and runtime tuning and improvements in teh area of stalls and responsiveness are unliukely to result in improved application repsonse behavior.

application Java (programming language)

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • 11 Observability Tools You Should Know
  • How We Solved an OOM Issue in TiDB with GOMEMLIMIT
  • Best CI/CD Tools for DevOps: A Review of the Top 10
  • Application Architecture Design Principles

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: