Designing Compilation Server
In language systems that support separate compilation, the header files are internalized over and over again when the source files that depend on them are compiled. Making a compiler a long lived server eliminates such redundant processing of header files, thus reducing the compilation time. 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, it is better to offload compilation onto a compilation server. Compilation server is the server which compiles and optimizes Java byte codes on behalf of its clients. It provides the benefit of lower execution and pause times due to reducing the overhead of optimization.