Performance Trade-offs Implementing Refactoring Support for Objective-C
Abstract
When we started implementing a refactoring tool for real-world C programs, we
recognized that preprocessing and parsing in straightforward and accurate ways
would result in unacceptably slow analysis times and an overly-complex parsing
system. Instead, we traded some accuracy so we could parse, analyze, and change
large, real programs while still making the refactoring experience feel interactive
and fast. Our tradeoffs fell into three categories: using different levels of
accuracy in different parts of the analysis, recognizing that the collected wisdom
about C programs didn't hold for Objective-C programs, and finding ways to exploit
delays in typical interaction with the tool.
