Sciweavers

OOPSLA
1999
Springer

Removing Unnecessary Synchronization in Java

13 years 10 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)