Title of article
Removing Unnecessary Synchronization in Java
Author/Authors
Holzle، Urs نويسنده , , Bogda، Jeff نويسنده ,
Issue Information
روزنامه با شماره پیاپی سال 1999
Pages
-34
From page
35
To page
0
Abstract
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 an interprocedural, flow- and context-insensitive dataflow analysis that finds such situations. A global optimizing transformation then 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%.
Keywords
Aspect-oriented programming , software engineering practices , Distributed Systems , web-based applications
Journal title
A C M Sigplan (Programming Languages) Sigplan Notices
Serial Year
1999
Journal title
A C M Sigplan (Programming Languages) Sigplan Notices
Record number
17058
Link To Document