next up previous contents
Next: Conclusion Up: Experiments Previous: Various Interpretation Penalties

 

6.9 Summary

So where does all of this leave us? We found, as discussed in Section 6.2, that the continuous compilation model performs well when compared to the traditional compilation model, especially when we take into account the additional benefits provided by the continuous compilation model, such as immediate response time.

We also found, in Section 6.3, that continuous compilation can outperform interpretation by tremendous margins, which is what was expected. However, we also found that as the time spent in library code increases, the gain in performance of continuous compilation over interpretation decreases.

In comparing replacement strategies we found, as expected, that the replace-preemptive method gives better performance than the replace-at-call method. In addition, while the gain in performance might be small for some programs, other programs show a tremendous increase in performance. In Section 6.4 we discuss the significant factors of the program structure that cause the replacement strategy to have such a strong effect.

Choosing a compilation strategy proved more difficult. As discussed in Section 6.5, which strategy performs the best seems to be tightly bound to the structure of the particular program being executed. The longest-overall strategy gave the best performance most often, but it required previous knowledge about the execution of the program. However, the longest-so-far strategy seems to work fairly well as an estimate to longest-overall.

We then examined the effects of particular program characteristics on performance. In Section 6.6 we reexamined the effects of the library/user code ratio on the continuous compiler. While a high percentage of library code might not give the continuous compiler an advantage over interpretation, it can give the continuous compiler a large advantage over traditional compilation.

Lastly, in Section 6.7 we found that the density of functions per source file does affect performance slightly, but not significantly. If functions could be compiled on an individual basis rather than a conglomerate file basis performance might be improved, but the overhead of dealing with the larger number of files might cancel out any gains.


next up previous contents
Next: Conclusion Up: Experiments Previous: Various Interpretation Penalties