Date of this Version
Profiling can offer a valuable characterization of software behavior. The richer the characterization is, the more effective the client analyses are in supporting quality assurance activities. For today's complex software, however, obtaining a rich characterization with the input provided by in-house test suites is becoming more difficult and expensive. Extending the profiling activity to deployed environments can mitigate this shortcoming by exposing more program behavior reflecting real software usage. To make profiling of deployed software plausible, however, we need to take into consideration that there are fundamental differences between the development and the deployed environments. Deployed environments allow for less overhead, provide less control for engineers to perform profiling adjustments, and generate high volumes of information that may be overwhelming and often irrelevant to the client analyses. These characteristics make existing techniques to support in-house profiling inadequate for deployed environments.
In this dissertation, we describe the challenges in performing deployed software profiling and propose deployed software analysis, i.e., a set of analysis techniques that address these challenges and enable cost-effective deployed software profiling. Specifically, we have developed and implemented techniques that can be applied to each of the following stages of deployed software profiling: (1) before the software is deployed to determine effective placements of the instrumentation probes that enable profiling; (2) during deployment to drive the adjustments in profiling activity; and (3) after deployment to efficiently process field data into meaningful and beneficial information. Each proposed analysis technique is evaluated under a variety of deployment settings to understand their efficiency and effectiveness trade-offs, and their impact on the quality of dynamic analyses that consume the profiled field information. The results suggest that the proposed analysis techniques can (1) reduce the profiling cost to satisfy a variety of overhead constraints, (2) retain significantly more of the gain provided by the field information when compared to control techniques, and (3) increase the precision of dynamic analyses's results by removing noise in field traces.