2000eScholarship (California Digital Library)Open access

Reducing the Overhead of Compilation Delay

Chandra Krintz, David Grove, Derek Lieber, Vivek Sarkar, Brad Calder

Open full text 2 citations

Abstract

The execution model for mobile dynamically-linked object--oriented\nprograms has evolved from fast interpretation to a mix of interpreted and\ndynamically compiled execution. The primary motivation for dynamic compilation\nis that compiled code executes significantly faster than interpreted code.\nHowever, since dynamic compilation is performed while the application is\nrunning, the biggest challenge in using dynamic compilation is to reduce its\noverhead so as not to mitigate the runtime improvement that it delivers.\nTechniques for reducing dynamic compilation overhead can be classified as (1)\ndecreasing the amount of compilation performed, or (2) overlapping compilation\nwith useful work. In this paper, we first evaluate the effectiveness of Lazy\nCompilation as a technique for decreasing the amount of compilation performed.\nIn lazy compilation, individual methods are compiled on demand (when called),\nthus avoiding the load-time delay of compiling all methods when a new\nclass/module is loaded. Our experimental results (obtained by executing the\nspecJVM Java programs on the Jalapeno JVM) show that lazy compilation results\nin compilation of 57% to 63% fewer methods, and a reduction in compilation time\nof approximately 30%, when compared to load-time compilation. Next, we present\nProfile-driven Background Compilation as a new technique for overlapping\ncompilation with execution. The motivation for background compilation is to\nuse idle cycles in multiprocessor systems to overlap compilation with\napplication execution. Profile information is used to prioritize methods as\ncandidates for background compilation. Our results show that background\ncompilation can deliver significant reductions (26% to 79%) in total time i.e.,\ncompilation plus execution time, compared to serial (non-background)Pre-2018 CSE ID: CS2000-0648

Open-access reader

About this research paper

What this paper is about

The execution model for mobile dynamically-linked object--oriented\nprograms has evolved from fast interpretation to a mix of interpreted and\ndynamically compiled execution. The primary motivation for dynamic compilation\nis that compiled code executes significantly faster than interpreted code.\nHowever, since dynamic compilation is performed while the application is\nrunning, the biggest challenge in using dynamic compilation is to reduce its\noverhead so as not to mitigate the runtime improvement that it delivers.\nTechniques for reducing dynamic compilation overhead can be classified as (1)\ndecreasing the amount of compilation performed, or (2) overlapping compilation\nwith useful work. In this paper, we first evaluate the effectiveness of Lazy\nCompilation as a technique for decreasing the amount of compilation performed.\nIn lazy compilation, individual methods are compiled on demand (when called),\nthus avoiding the load-time delay of compiling all methods when a new\nclass/module is loaded. Our experimental results (obtained by executing the\nspecJVM Java programs on the Jalapeno JVM) show that lazy compilation results\nin compilation of 57% to 63% fewer methods, and a reduction in compilation time\nof approximately 30%, when compared to load-time compilation. Next, we present\nProfile-driven Background Compilation as a new technique for overlapping\ncompilation with execution. The motivation for background compilation is to\nuse idle cycles in multiprocessor systems to overlap compilation with\napplication execution. Profile information is used to prioritize methods as\ncandidates for background compilation. Our results show that background\ncompilation can deliver significant reductions (26% to 79%) in total time i.e.,\ncompilation plus execution time, compared to serial (non-background)Pre-2018 CSE ID: CS2000-0648

Why it matters

OpenAlex reports 2 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

The execution model for mobile dynamically-linked object--oriented\nprograms has evolved from fast interpretation to a mix of interpreted and\ndynamically compiled execution. The primary motivation for dynamic compilation\nis that compiled code executes significantly faster than interpreted code.\nHowever, since dynamic compilation is performed while the application is\nrunning, the biggest challenge in using dynamic compilation is to reduce its\noverhead so as not to mitigate the runtime improvement that it delivers.\nTechniques for reducing dynamic compilation overhead can be classified as (1)\ndecreasing the amount of compilation performed, or (2) overlapping compilation\nwith useful work. In this paper, we first evaluate the effectiveness of Lazy\nCompilation as a technique for decreasing the amount of compilation performed.\nIn lazy compilation, individual methods are compiled on demand (when called),\nthus avoiding the load-time delay of compiling all methods when a new\nclass/module is loaded. Our experimental results (obtained by executing the\nspecJVM Java programs on the Jalapeno JVM) show that lazy compilation results\nin compilation of 57% to 63% fewer methods, and a reduction in compilation time\nof approximately 30%, when compared to load-time compilation. Next, we present\nProfile-driven Background Compilation as a new technique for overlapping\ncompilation with execution. The motivation for background compilation is to\nuse idle cycles in multiprocessor systems to overlap compilation with\napplication execution. Profile information is used to prioritize methods as\ncandidates for background compilation. Our results show that background\ncompilation can deliver significant reductions (26% to 79%) in total time i.e.,\ncompilation plus execution time, compared to serial (non-background)Pre-2018 CSE ID: CS2000-0648

Key concepts: Computer science, Dynamic compilation, Just-in-time compilation, Overhead (engineering), Programming language, Parallel computing, Code (set theory), Java

Related papers

Back to paper searchBrowse research topicsOriginal source
Reducing the Overhead of Compilation Delay — Research Paper | ScholarLens