Monitoring Performance to Detect Regressions
The Performance Monitor is used to capture and display performance information. It
has three major parts:
- Plug-ins - capture some performance data in an XML file.
- Database - holds the performance data.
- Web Application - handles
uploading the results into the database, and it displays the contents of the
database, in (hopefully) interesting and useful ways.
Currently, just the first part is included in the releng component of
Eclipse.
The general process is to:
- Define a test case (this is a one time activity). This can also be done dynamically
- Run the test case, capturing performance data at the prescribed steps
- Upload the performance data to a server so it can be managed
- Analyze the data using the performance web application.
Performance Monitor Plug-ins
There are three plug-ins:
- org.eclipse.perfmsr.core - captures performance
information. It has the minimal set of dependencies (org.eclipse.core.runtime).
It includes classes that can be used programmatically
to capture performance information without using the Performance Monitor's user interface.
- org.eclipse.perfmsr.ui - provides a user interface for capturing and
managing performance information.
- org.eclipse.perfmsr.ui.client - provides a user interface for
displaying and comparing performance information using the Performance Snapshots view.
And one fragment:
- org.eclipse.perfmsr.core.win32 - captures some Windows-specific performance information.
At the process level it can capture things
like working set, kernel time, GDI objects, etc. At the system level (on XP,
since it depends on the psapi.dll) it can capture things like committed
memory.