• DocumentCode
    1972868
  • Title

    JIT Compilation Policy on Single-Core and Multi-core Machines

  • Author

    Kulkarni, Prasad A. ; Fuller, Jay

  • Author_Institution
    Dept. of Electr. Eng. & Comput. Sci., Univ. of Kansas, Lawrence, KS, USA
  • fYear
    2011
  • fDate
    12-12 Feb. 2011
  • Firstpage
    54
  • Lastpage
    62
  • Abstract
    Dynamic or Just-in-Time (JIT) compilation is crucial to achieve acceptable performance for applications written in traditionally interpreted languages, such as Java and C#. Such languages enable the generation of portable applications that are written and compiled once, and can be executed by a virtual machine on any supported architecture. However, by virtue of occurring at runtime, dynamic compilation adds to the overall execution time of the application, and can potentially slow down program execution if performed injudiciously. Selective compilation is a technique that was developed for single-core architectures to manage the compilation overhead by dynamically determining and compiling only the most critical program regions. Current processors have evolved from single-core machines to those supporting multiple tightly-integrated cores. Consequently, research is needed to explore the best JIT compilation policy on multi-core machines with several concurrent compiler threads. In this paper, we present novel experimental configurations to understand the benefits of dynamic compilation, and find the best JIT compilation policies on single and multi-core machines. Our results validate earlier claims that compiling a small percentage of methods has an inordinately large impact on performance. We show that spawning a greater number of simultaneous compiler threads can achieve better program performance on single-core machines. Our results also reveal that more than an increase in compiler aggressiveness, a small increase in the number of compiler threads achieves the best application performance on multi-core machines.
  • Keywords
    C language; Java; just-in-time; multiprocessing systems; program compilers; virtual machines; C#; Java; concurrent compiler threads; just-in-time compilation; multicore machines; single core machines; virtual machine; Benchmark testing; Delay; Dynamic compiler; Instruction sets; Multicore processing; Virtual machining; Java; dynamic compilation; multi-core; virtual machines;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Interaction between Compilers and Computer Architectures (INTERACT), 2011 15th Workshop on
  • Conference_Location
    San Antonio, TX
  • ISSN
    1550-6207
  • Print_ISBN
    978-1-4577-0834-3
  • Electronic_ISBN
    1550-6207
  • Type

    conf

  • DOI
    10.1109/INTERACT.2011.9
  • Filename
    5936697