Sciweavers

OOPSLA
1999
Springer

Removing Unnecessary Synchronization in Java

13 years 8 months ago
Removing Unnecessary Synchronization in Java
Java programs perform many synchronization operations on data structures. Some of these synchronizations are unnecessary; in particular, if an object is reachable only by a single thread, concurrent access is impossible and no synchronization is needed. We describe a flow-insensitive, context-sensitive data-flow analysis that finds such situations and a global optimizing transformation that eliminates synchronizations on these objects. For every program in our suite of ten Java benchmarks consisting of SPECjvm98 and others, our system optimizes over 90% of the alias sets containing at least one synchronized object. As a result, the dynamic frequency of synchronizations is reduced by up to 99%. For two benchmarks that perform synchronizations very frequently, this optimization leads to speedups of 36% and 20%, respectively.
Jeff Bogda, Urs Hölzle
Added 04 Aug 2010
Updated 04 Aug 2010
Type Conference
Year 1999
Where OOPSLA
Authors Jeff Bogda, Urs Hölzle
Comments (0)