Share this page
Share this page E-mail this page Print this page RSS feeds
Home > Publications > BMAT &#150 A Binary Matching Tool
BMAT &#150 A Binary Matching Tool

A major challenge of applying profile-based optimization on large real-world applications is how to capture adequate profile information. A large program, with millions of lines of code, may be used in a large variety of ways by different users on different machines. In addition, GUI-based applications can behave differently wiht only the slightest changes of running conditions. To fully characterize this type of program behavior, extensive collection of profile data is required. Unfortunately, in a realistic software production environment, little time is available for extensive profiling. In a large project, many developers and testers need fast access to the latest build without having to wait for extensive profile runs to be completed. To address this dilemma, we would like to be able to reuse profile information from a prior build. In this paper we present BMAT, a tool that matches two versions of a binary program with high success rate. BMAT allows us to propagate profile information from an older, extensively profiled build to a newer build, thus greatly reducing or even eliminating the need for re-profiling. To evaluate the quality of results, we propose two evaluation metrics: the ability of the propagated profile information to perform static branch prediction, and the extent to which propagated code coverage information matches coverage data from the current build. These two metrics show how well the matching algorithm works for the frequently executed core code and across the whole program, respectively. Experiments on a set of large DLLs from Microsoft Windows 2000 and Internet Explorer show that propagated information using BMAT is typically over 99% and 98% as good on these metrics as fresh profile information. The running time of BMAT is small, under four minutes for a 5.5MB sized program on a Pentium II 200MHz machine.

tr-99-83.ps
PostScript file

Details

Type: TechReport
Number: MSR-TR-99-83
Pages: 10
Institution: Microsoft Research