Guava: A dialect of Java without data races
D.F. Bacon, Rob Strom, et al.
OOPSLA 2000
Language-supported synchronization is a source of serious performance problems in many Java programs. Even single-threaded applications may spend up to half their time performing useless synchronization due to the thread-safe nature of the Java libraries. We solve this performance problem with a new algorithm that allows lock and unlock operations to be performed with only a few machine instructions in the most common cases. Our locks only require a partial word per object, and were implemented without increasing object size. We present measurements from our implementation in the JDK 1.1.2 for AIX, demonstrating speedups of up to a factor of 5 in micro-benchmarks and up to a factor of 1.7 in real programs.
D.F. Bacon, Rob Strom, et al.
OOPSLA 2000
D.F. Bacon
Byte
G. Sevitsky, W. De Pauw, et al.
TOOLS 2001
D.F. Bacon, C.R. Attanasio, et al.
PLDI 2001