Monitoring software using property-aware program sampling
Monitoring or profiling programs provides us with an
understanding for its further improvement and analysis.
Typically, for monitoring or profiling, the program is instrumented
to execute additional code that collects necessary data.
A problem is that program instrumentation is often reported to
cause between 10% and 390% time and space overhead.
A number of techniques based on statistical sampling
have been proposed to reduce the instrumentation overhead.
Statistical sampling based instrumentation techniques,
although effective in reducing the overall overhead,
often lead to poor coverage or less accurate results.
In this work, we present a profiling technique based
on property-aware program sampling.
The key ideas are (i) to use program slicing to narrow
down the scope of instrumentation to the sections
of program relevant to the property of interest,
(ii) to decompose large program slices into logically
related slice fragments, and (iii) to apply statistical
sampling on the set of slice fragments.