Table of Contents
Goal: Give performance improvement advice based on recognition of suboptimal usage patterns of the standard library.
Method: Wrap the standard library code. Insert calls to an instrumentation library to record the internal state of various components at interesting entry/exit points to/from the standard library. Process trace, recognize suboptimal patterns, give advice. For details, see the Perflint paper presented at CGO 2009.
Strengths:
Unintrusive solution. The application code does not require any modification.
The advice is call context sensitive, thus capable of identifying precisely interesting dynamic performance behavior.
The overhead model is pay-per-view. When you turn off a diagnostic class at compile time, its overhead disappears.
Drawbacks:
You must recompile the application code with custom options.
You must run the application on representative input. The advice is input dependent.
The execution time will increase, in some cases by factors.