Monitoring software using property-aware program sampling

By: Harish B. Narayanappa

PDF Download Download Paper

Abstract

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.

ACM Reference

Narayanappa, H.B. 2010. Monitoring software using property-aware program sampling. Iowa State University.

BibTeX Reference

@mastersthesis{narayanappa2010monitoring,
  title={Monitoring software using property-aware program sampling},
  author={Narayanappa, Harish B},
  year={2010},
  school={Iowa State University},
  abstract = {
    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.
  }
}