The cost of selective recompilation and environment processing

  • Authors:
  • Rolf Adams;Walter Tichy;Annette Weinert

  • Affiliations:
  • Univ. of Karlsruhe, Karlsruhe, Germany;Univ. of Karlsruhe, Karlsruhe, Germany;Univ. of Karlsruhe, Karlsruhe, Germany

  • Venue:
  • ACM Transactions on Software Engineering and Methodology (TOSEM)
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

Abstract

When a single software module in a large system is modified, a potentially large number of other modules may have to be recompiled. By reducing both the number of compilations and the amount of input processed by each compilation run, the turnaround time after changes can be reduced significantly.Potential time savings are measured in a medium-sized, industrial software project over a three-year period. The results indicate that a large number of compilations caused by traditional compilation unit dependencies may be redundant. On the available data, a mechanism that compares compiler output saves about 25 percent, smart recompilation saves 50 percent, and smartest recompilation may save up to 80 percent of compilation work.Furthermore, all compilation methods other than smartest recompilation process large amounts of unused environment data. In the project analyzed, the average environment symbols are actually used. Reading only the actually used symbols would reduce total compiler input by about 50 percent.Combining smart recompilation with a reduction in environment processing might double to triple perceived compilation speed and double linker speed, without sacrificing static type safety.