Open Source Tool Tracks Java Performance 'Hiccups'

Java runtime maker Azul Systems this week unveiled a new tool designed to measure the response-time fluctuations known as "hiccups" associated with an application's underlying Java runtime (RT) platform. By tracking these fluctuations, the new, free jHiccup tool shows developers where the causes of application delays reside: in the app code or the underlying runtime platform.

"It's essentially a flashlight pointing at some performance variabilities that many people aren't really aware of," explained George Gould, Azul's vice president of marketing and business development. "Typically when a developer sees problems and inconsistencies, the actual runtime, the operating system, or the hypervisor aren't generally where people start to look."

jHiccup is the brainchild of Azul's CTO and Co-Founder Gil Tene, and it's a tool the company has been using internally for some time. The tool doesn't measure delays caused by the app code, Tene explained, but captures the pauses and stalls caused by the underlying runtime platform only. The idea is to isolate true application performance, latency and delay problems.

"There's a common assumption when people run applications that the thing they run on is perfect, or at least consistent," Tene told, "that the performance now and an hour from now will be the same, that the performance second to second will be the same, and that it all depends on my code. jHiccup is designed to run along with the application without changing anything in it and observer the Java runtime. By looking at fluctuations in the underlying Java runtime platform that would affect any application thread running at the time of the stall, it allows developers, system operators, and performance engineers to focus on the right parts of the runtime stack."

jHiccup captures, logs and displays on simple "hiccup charts" these pauses and stalls in the underlying execution platform.

"If you run jHiccup and it shows you that the system is very consistent, then you know whatever issues there are might well be yours," Tene said. "If you run jHiccup and you see that once every couple of minutes the system freezes for a second and a half, and there's a correlation with the inconsistency in your application's response time, then you know that the platform is where you need to focus. Anything that jHiccup sees can't possibly be your application's fault."

"It's very important for people to understand the capability of the runtime platform that their Java applications are sitting on," Gould added. "You can't do better than what the platform gives you."

Azul has released jHiccup as an open-source product under the Creative Commons license. It's available now as a free download from the company Web site here.

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].