• DocumentCode
    428902
  • Title

    Automatically reducing repetitive synchronization with a just-in-time compiler for Java

  • Author

    Stoodley, Mark ; Sundaresan, Vijay

  • Author_Institution
    Toronto Lab., IBM Canada Ltd., Toronto, Ont., Canada
  • fYear
    2005
  • fDate
    20-23 March 2005
  • Firstpage
    27
  • Lastpage
    36
  • Abstract
    We describe an automatic technique to remove repetitive synchronization in Java™ programs by removing selected MONITORENTER/EXIT operations. Once these operations are removed, parts of a method that were not originally locked become protected by a lock. If it is unsafe to synchronize the code between the original locked regions, however, the code is not transformed. Scalability is also protected by not allowing a lock to be held for a significantly longer time than it would be held in the original program code. Our base algorithm improved the throughput of the industry-standard SPECjbb2000 benchmark by 2% to 5% for three different platforms. We also describe an extension to our algorithm to better handle virtual calls, which are prevalent in Java code, and this extension provides up to a further 5% improvement. Our computationally efficient algorithm was implemented and evaluated in a production Just-In-Time (JIT) compiler.
  • Keywords
    Java; multi-threading; program compilers; synchronisation; Java; Just-In-Time (JIT) compiler; MONITORENTER-EXIT operation; industry-standard SPECjbb2000 benchmark; repetitive synchronization reduction; Computerized monitoring; Flow graphs; Java; Production; Program processors; Programming profession; Protection; Scalability; Throughput; Yarn;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Code Generation and Optimization, 2005. CGO 2005. International Symposium on
  • Print_ISBN
    0-7695-2298-X
  • Type

    conf

  • DOI
    10.1109/CGO.2005.7
  • Filename
    1402074