skip to main content
article
Open access

Design, implementation, and evaluation of a compilation server

Published: 01 August 2007 Publication History

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.

References

[1]
Arnold, M., Fink, S., Grove, D., Hind, M., and Sweeney, P. 2000. Adaptive optimization in the Jalapeño JVM. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, Minneapolis, MN, 47--65.
[2]
Arnold, M., Hind, M., and Ryder, B. G. 2002. Online feedback-directed optimization of Java. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, Seattle, WA, 111--129.
[3]
Arnold, M. and Ryder, B. G. 2001. A framework for reducing the cost of instrumented code. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. ACM Press, Snowbird, UT, 168--179.
[4]
Auslander, J., Philipose, M., Chambers, C., Eggers, S. J., and Bershad, B. N. 1996. Fast, effective dynamic compilation. In Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation. ACM Press, Philadelphia, PA, 149--159.
[5]
Burke, M., Choi, J.-D., Fink, S., Grove, D., Hind, M., Sarkar, V., Serrano, M., Sreedhar, V. C., and Srinivasan, H. 1999. The Jalapeño dynamic optimizing compiler for Java. In ACM Java Grande Conference. ACM Press, San Francisco, CA, 129--141.
[6]
Chambers, C. and Ungar, D. 1991. Making pure object-oriented languages practical. In Proceedings of the 1991 Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, Phoenix, AZ, 1--15.
[7]
Cheng, P. and Blelloch, G. E. 2001. A parallel, real-time garbage collector. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation. ACM Press, Snowbird, UT, 125--136.
[8]
Cierniak, M., Lueh, G.-Y., and Stichnoth, J. M. 2000. Practicing JUDO: Java under dynamic optimizations. In Proceedings of the ACM SIGPLAN 2000 Conference on Programming Language Design and Implementation. ACM Press, Vancouver, BC, 13--26.
[9]
Cytron, R., Ferrante, J., Rosen, B. K., Wegman, M. N., and Zadeck, F. K. 1991. Efficiently computing static single assignment form and the control dependence graph. ACM Trans. Program. Lang. Syst. (TOPLAS) 13, 4, 451--490.
[10]
Delsart, B., Joloboff, V., and Paire, E. 2002. JCOD: A lightweight modular compilation technology for embedded Java. In Proceedings of the Second International Conference on Embedded Software. Springer-Verlag, Grenoble, France, 197--212.
[11]
Detlefs, D. and Agesen, O. 1999. Inlining of virtual methods. In Proceedings of the 13th European Conference on Object-Oriented Programming. Springer-Verlag, Lisbon, Portugal, 258--278.
[12]
Ellis, S. 2003. The ‘nc’ network compilation tool. Available at http://www.brouhaha.com/ellis/software/index.html.
[13]
Fink, S. J. and Qian, F. 2003. Design, implementation, and evaluation of adaptive recompilation with on-stack replacement. In Proceedings of the International Symposium on Code Generation and Optimization. IEEE Computer Society, San Francisco, California, 241--252.
[14]
Flinn, J., Narayanan, D., and Satyanarayanan, M. 2001. Self-tuned remote execution for pervasive computing. In 8th Workshop on Hot Topics in Operating Systems (HotOS-VIII). IEEE Computer Society Press, Schloss Elmau, Oberbayern, Germany.
[15]
Gosling, J., Joy, B., Steele, G., and Bracha, G. 2000. Java Language Specification, Second Ed.: The Java Series. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
[16]
Hauswirth, M., Sweeney, P. F., Diwan, A., and Hind, M. 2004. Vertical profiling: understanding the behavior of object-priented applications. In OOPSLA 2004: Proceedings of the 19th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY, USA, 251--269.
[17]
Hölzle, U. and Ungar, D. 1994. A third-generation self implementation: reconciling responsiveness with performance. In Proceedings of the Ninth Annual Conference on Object-oriented Programming Systems, Language, and Applications. ACM Press, Portland, OR, 229--243.
[18]
Hölzle, U. and Ungar, D. 1996. Reconciling responsiveness with performance in pure object-oriented languages. ACM Trans. Program. Lang. Syst. 18, 4, 355--400.
[19]
Kistler, T. and Franz, M. 1998. Computing the similarity of profiling data: Heuristics for guiding adaptive compilation. In Workshop on Profile and Feedback-Directed Compilation. Springer Verlag, Paris, France.
[20]
Kremer, U., Hicks, J., and Rehg, J. M. 2000. Compiler-directed remote task execution for power management. In Workshop on Compilers and Operating Systems for Low Power (COLP 2000). Philadelphia, PA.
[21]
Kremer, U., Hicks, J., and Rehg, J. M. 2001. A compilation framework for power and energy management on mobile computers. Tech. Rep. DCS-TR-446, Rutgers University.
[22]
Krintz, C. 2003. Coupling on-line and off-line profile information to improve program performance. In Proceedings of the International Symposium on Code Generation and Optimization. IEEE Computer Society, San Francisco, CA, 69--78.
[23]
Kuznetsov, A. 1998. IPROUTE2 utility suite howto. Available at http://www.linuxgrill.com/iproute2-toc.html.
[24]
Lee, H. B., von Dincklage, D., Diwan, A., and Moss, J. E. B. 2006. Understanding the behavior of compiler optimizations. Software: Practice and Experience 36, 8 (July), 835--844.
[25]
Lindholm, T. and Yellin, F. 1996. The Java Virtual Machine Specification. Addison-Wesley, Boston, MA.
[26]
Newsome, M. and Watson, D. 2002. Proxy compilation of dynamically loaded Java classes with MoJo. In Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Systems. ACM Press, Berlin, Germany, 204--212.
[27]
Paleczny, M., Vick, C., and Click, C. 2001. The Java HotSpot(TM) server compiler. In Java Virtual Machine Research and Technology Symposium. The Usenix Association, Monterey, CA.
[28]
Palm, J., Lee, H., Diwan, A., and Moss, J. E. B. 2002. When to use a compilation service? In Proceedings of the Joint Conference on Languages, Compilers and Tools for Embedded Systems. ACM Press, Berlin, Germany, 194--203.
[29]
Plezbert, M. P. and Cytron, R. K. 1997. Does “just in time” = “better late than never”? In Proceedings of the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages. ACM Press, Paris, France, 120--131.
[30]
Pool, M. 2003. distcc, a fast free distributed compiler. Available at http://distcc.samba.org/doc/lca2004/distcc-lca-2004.html. White Paper.
[31]
Radhakrishnan, R., Vijaykrishnan, N., John, L. K., and Sivasubramaniam, A. 2000. Architectural issues in Java runtime systems. In Proceedings of the 6th International Symposium on High Performance Computer Architecture (HPCA-6). IEEE, Toulouse, France, 387--398.
[32]
Savari, S. and Young, C. 2000. Comparing and combining profiles. Journal of Instruction-Level Parallelism 2.
[33]
Sirer, E. G., Grimm, R., Gregory, A. J., and Bershad, B. N. 1999. Design and implementation of a distributed virtual machine for networked computers. In 17th ACM Symposium on Operating System Principles (SOSP 1999). ACM Press, Kiawah Island, SC, 202--216.
[34]
Standard Performance Evaluation Corporation (SPEC). 1998. SPECjvm98 benchmarks. http://www.specbench.org/osg/jvm98.
[35]
Standard Performance Evaluation Corporation (SPEC). 2000. SPECjbb2000 benchmark. http://www.specbench.org/jbb2000/.
[36]
Suganuma, T., Yasue, T., Kawahito, M., Komatsu, H., and Nakatani, T. 2001. A dynamic optimization framework for a Java just-in-time compiler. In Proceedings of the Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, Tampa Bay, FL, USA, 180--195.
[37]
Teodorescu, R. and Pandey, R. 2001. Using JIT compilation and configurable runtime systems for efficient deployment of Java programs on ubiquitous devices. In Ubiquitous Computing 2001, LNCS 2201. Springer Verlag, Atlanta, GA, 76--95.
[38]
Voss, M. J. and Eigemann, R. 2001. High-level adaptive program optimization with ADAPT. In Proceedings of the Eighth ACM SIGPLAN Symposium on Principles and Practices of Parallel Programming. ACM Press, Snowbird, UT, 93--102.

Cited By

View all
  • (2024)An Analysis of Compiled Code Reusability in Dynamic CompilationProceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3689490.3690406(43-53)Online publication date: 17-Oct-2024
  • (2024)Using Semeru Cloud Compiler to Enhance Cloud-Native Java Application Performance2024 34th International Conference on Collaborative Advances in Software and COmputiNg (CASCON)10.1109/CASCON62161.2024.10838216(1-9)Online publication date: 11-Nov-2024
  • (2012)Dynamic Binary Translation -- A Model-Driven ApproachProceedings of the 2012 31st International Conference of the Chilean Computer Science Society10.1109/SCCC.2012.30(199-206)Online publication date: 12-Nov-2012

Index Terms

  1. Design, implementation, and evaluation of a compilation server

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    ACM Transactions on Programming Languages and Systems  Volume 29, Issue 4
    August 2007
    244 pages
    ISSN:0164-0925
    EISSN:1558-4593
    DOI:10.1145/1255450
    Issue’s Table of Contents

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 01 August 2007
    Published in TOPLAS Volume 29, Issue 4

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Compilation server
    2. Java virtual machine

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)63
    • Downloads (Last 6 weeks)11
    Reflects downloads up to 24 Jan 2025

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)An Analysis of Compiled Code Reusability in Dynamic CompilationProceedings of the 16th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3689490.3690406(43-53)Online publication date: 17-Oct-2024
    • (2024)Using Semeru Cloud Compiler to Enhance Cloud-Native Java Application Performance2024 34th International Conference on Collaborative Advances in Software and COmputiNg (CASCON)10.1109/CASCON62161.2024.10838216(1-9)Online publication date: 11-Nov-2024
    • (2012)Dynamic Binary Translation -- A Model-Driven ApproachProceedings of the 2012 31st International Conference of the Chilean Computer Science Society10.1109/SCCC.2012.30(199-206)Online publication date: 12-Nov-2012

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Full Access

    Figures

    Tables

    Media

    Share

    Share

    Share this Publication link

    Share on social media

    pFad - Phonifier reborn

    Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

    Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


    Alternative Proxies:

    Alternative Proxy

    pFad Proxy

    pFad v3 Proxy

    pFad v4 Proxy