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. However, a widely-understood problem with this approach is that program instrumentation can result in significant execution overhead. A number of techniques based on statistical sampling have been proposed to reduce this overhead. Statistical sampling based instrumentation techniques, although effective in reducing the overall overhead, often lead to poor coverage or incomplete results. The contribution of this work is a profiling technique that we call property-aware program sampling. Our sampling technique uses program slicing to reduce the scope of instrumentation and slice fragmentsto decompose large program slices into more manageable, logically related parts for instrumentation, thereby improving the scalability of monitoring and profiling techniques. The technical underpinnings of our work include the notion of slice fragments and an efficient technique for computing a reduced set of slice fragments.
Available at: http://works.bepress.com/hridesh-rajan/106/
This article is published as Narayanappa, Harish, Mukul S. Bansal, and Hridesh Rajan. "Property-aware program sampling." In Proceedings of the 9th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, pp. 45-52. ACM, 2010. 10.1145/1806672.1806682. Posted with permission.