• DocumentCode
    3471828
  • Title

    Experiences with multi-threading and dynamic class loading in a Java just-in-time compiler

  • Author

    Sundaresan, Vijay ; Maier, Daryl ; Ramarao, Pramod ; Stoodley, Mark

  • Author_Institution
    IBM Canada Ltd, Markham, Ont., Canada
  • fYear
    2006
  • fDate
    26-29 March 2006
  • Abstract
    In this paper, we describe the techniques that have been implemented in the IBM TestaRossa (TR) just-in-time (JIT) compiler to safely perform aggressive code patching and collect accurate profiles in the context of a Java application employing multiple threads and dynamic class loading and unloading. Previous work in these areas either did not account for the synchronization cost of safety or dynamic class loading/unloading effects in a heavily multithreaded program or did not consider how different patching techniques may be required for different platforms where instruction cache coherence guarantees vary. We evaluate the space and time overhead to make our profiling framework correct, showing that privatizing the profiling variables to achieve correctness impacts execution time only minimally but it can grow the stack frames for profiled methods by less than 15% on average for the SPECjvm98 and SPECjbb2000 benchmarks. Since methods are profiled for only a brief time and the stack frames themselves are not large, we do not consider this growth to be prohibitive. The techniques reported in this paper are implemented in the 1.5.0 release of the IBM Developer Kit for Java targeting 12 different processor-operating system platforms.
  • Keywords
    Java; multi-threading; object-oriented programming; program compilers; IBM Developer Kit; IBM TestaRossa just-in-time compiler; Java just-in-time compiler; aggressive code patching; dynamic class loading; dynamic class unloading; multithreading; processor-operating system platforms; Computer languages; Costs; Java; Performance evaluation; Production; Program processors; Safety; Software design; Testing; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2006. CGO 2006. International Symposium on
  • Print_ISBN
    0-7695-2499-0
  • Type

    conf

  • DOI
    10.1109/CGO.2006.16
  • Filename
    1611532