Skip to main content
Article
Design, Implementation, and Evaluation of a Compilation Server
ACM Transactions on Programming Languages and Systems (2007)
  • Eliot B. Moss
Abstract

Modern JVM implementations interleave execution with compilation of “hot” methods to achieve reasonable performance. Since compilation overhead impacts the execution time of the application and induces run-time pauses, we explore offloading compilation onto a compilation server. In this article, we present the design, implementation, and evaluation of a compilation server that compiles and optimizes Java bytecodes on behalf of its clients. We show that the compilation server provides the following benefits for our benchmark programs: (i) lower execution time by reducing the compilation overhead and by enabling more aggressive optimizations; (ii) lower memory allocation by eliminating allocations due to optimizing compilation and the footprint of the optimizing compiler; (iii) lower execution time of the application due to sharing of profile information across different runs of the same application and runs of different applications. We implemented the compilation server in Jikes RVM, and our results indicate that it can reduce running time by an average of 20.5% interruptions due to compilation by an average of 81.0%, and dynamic memory allocation by 8.6%, for our benchmark programs. Simulation results indicate that our current implementation of the compilation server can handle more than 50 concurrent clients while still allowing them to outperform the best performing adaptive configuration.

Disciplines
Publication Date
2007
Citation Information
Eliot B. Moss. "Design, Implementation, and Evaluation of a Compilation Server" ACM Transactions on Programming Languages and Systems Vol. 29 Iss. 4 (2007)
Available at: http://works.bepress.com/eliot_moss/3/