Software EKG (EKG is German for ECG, i.e., "electrocardiogram") is a data performance analyzer. With it, you can perform offline analyses of data recorded by the collector application or any tool collecting performance data in tabular CSV format. We're currently able to collect numerical data from the following sources:
- Windows Performance Counter
- Log files
The tool also allows automatic analysis via plugins during a process we refer to as Computer Aided Software Diagnosis.
Here's what it looks like (click to enlarge):
The application was developed for a performance consulting job in Munich. The landscape of software and hardware was extremely complex. They have components written in Java, .NET, C++, and VB mixed together in complex processes, such as connections from Java -> JNI -> C++ -> .Net -> VB Script. So we developed a first version of the tool to analyze performance data from the various applications on different machines. For example, the tool shows various kinds of leaks, e.g., memory, threads, handles, and virtual memory.
We started with a simple Swing user interface, which used a JFreechart Graph and some JComboBoxes for navigation. The next version made use of the Swing Application Framework. The current version, version 3, is developed on top of the NetBeans RCP, as you can see from the screenshot above. It was very easy to port the application and we now have a lot of new features for free thanks to the NetBeans RCP.
I am going to present Software EKG at the upcoming SEACON conference in Hamburg, in a session entitled Dynamische Analyse mit dem Software-EKG. Currently the tool is not open sourced, but that could change in the future.