![]() |
![]() |
|
|
Fast Synchronization for Quasi-Immutable Objects
Hiroyasu Nishiyama1 and Kei Nakajima2
Synchronization performance is one of the most important factor for improving Java application performance. In this paper, we propose a quasi-immutable object and its application to fast implementation of Java synchronization primitives. The quasi-immutable object is similar to immutable object. However, unlike immutable object, it incurs infrequent state changes. Relying on this characteristics, we developed optimization method for a synchronized reference sequence for a quasi-immutable object. This optimization method dynamically detects objects that are not updated synchronously from other threads and apply fast execution sequences. The optimization allows multiple threads to execute referencing critical sections simultaneously and reduces synchronization overhead. In order to measure the effectiveness of proposed optimization, we implemented the optimization method on HotSpot Java VM. According to the results of experimental evaluations, the proposed optimization method for quasi-immutable objects improved performance of a micro-benchmark up to 13 times and SPEC benchmarks up to 27%.
Please contact our webadmin with any comments or changes.
|