Stochastic Performance Logic (SPL) serves for capturing performance assumptions. With SPL, it is possible to annotate Java functions with assumptions stating, for example, that the annotated function is at most three times slower than array copying.
The assumption is then checked at build time in a similar way as standard unit testing. In other words, SPL is about introducing performance assert().
Important feature is that it is possible to easily add regression tests stating that current version of a certain method is faster than in the previous version (release). This software is an implementation of this principle for Java.
The framework consists of a plugin for Eclipse, Hudson and a command-line tool for manual execution. The command-line tool can be used in scripts and other automation processes and offers the following: decide which methods to measure, checkout referenced revisions, build the code that shall be measured, run the measurements and evaluate SPL formulas.
The measurements can be offloaded to a remote machine using SSH protocol. The tool can work with versioning systems, such as Subversion or Git.
The Eclipse plugin offers the same functionality as the command-line tool but the user can use GUI dialogs and special editors for writing of the tests. A special configuration editor is also available.
The Hudson plugin allows integration of SPL performance unit tests with the Hudson continuous integration server in a similar manner as JUnit tests.