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
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;
Conference_Titel :
Code Generation and Optimization, 2005. CGO 2005. International Symposium on
Print_ISBN :
0-7695-2298-X