loading...
Automatically Reducing Repetitive Synchronization with a Just-in-Time Compiler for Java
San Jose, California March 20-March 23
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/CGO.2005.7International Symposium on Code Gener ...
 This Article 
 
PDF
HTML
 
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Mark Stoodley, Toronto Lab, IBM Canada Ltd.
Vijay Sundaresan, Toronto Lab, IBM Canada Ltd.
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.
Citation:
Mark Stoodley, Vijay Sundaresan, "Automatically Reducing Repetitive Synchronization with a Just-in-Time Compiler for Java," cgo, pp.27-36, International Symposium on Code Generation and Optimization (CGO'05), 2005
Usage of this product signifies your acceptance of the Terms of Use.