International Symposium on Code Generation and Optimization (CGO'05) Automatically Reducing Repetitive Synchronization with a Just-in-Time Compiler for Java San Jose, California March 20-March 23 ISBN: 0-7695-2298-X
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/CGO.2005.7
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||