In real-time systems, coarse-grained performance characteristics such as overall throughput alone are not enough to verify responsiveness or determine the causes of failure. The ability to measure and visualize fine-grained events is necessary for determining correctness and analyzing why the system misbehaved.

The large volume of data often generated by these systems is hard to understand without visualization. In production systems where downtime is unacceptable, online monitoring and analysis can be useful for problem determination and resolution. During development, a real-time system must be tested for performance regression automatically and a useful analysis tool must also support scripting commands.

TuningFork is a data visualization and analysis tool that supports the development and continuous monitoring of such real-time systems.

TuningFork is built on the Eclipse Rich Client Platform (described at eclipse.org). TuningFork itself is implemented as a collection of Eclipse plug-ins and exports a number of extension points that allow user-defined data stream formats, stream filters, and visualizations to be easily added to the tool.

TuningFork uses a combination of known and novel techniques and visualizations, but it is the whole that is greater than the sum of the parts. TuningFork's features include a real-time centered design that adapts to data loss and event reordering due to resource constraints in the traced system, the ability to handle very large volumes of data, online with a running system an adaptive data summarization framework allowing even more past data to be viewed, the ability to play the data in forward and reverse, plugin-based extensibility of trace formats and figures, and a composable data stream abstraction that allows creation of new synthetic events.

Novel figures include the Oscilloscope figure that presents interval data in a sequence of time strips. With a large LCD display, this allows 2-3 seconds of data to be visualized at 10us resolution, or 20-30 seconds of data at 10ms resolution, with user-selectable continuously variable time scales. When play mode is off, data can be viewed down to the nanosecond scale. Furthermore, a statistical superimposition facility allows the overall behavior of huge amounts of periodic high-resolution data to be visualized (hence the oscilloscope analogy).