Java Object Assign Once Analysis

LI Jian,YANG Zhe-min,YANG Min
DOI: https://doi.org/10.3969/j.issn.1000-1220.2012.07.021
2012-01-01
Abstract:The nondeterministic memory access sequence in multi-threads program usually leads to runtime problem like data race and dead lock.To conquer these problems,researchers develop data race detection and deterministic replay tools to diagnose and fix nondeterministic bugs in parallel program.However,these tools share an issue of very high runtime overhead because of monitoring the memory access of the programs.Experiments show that there are a large number of objects which are initialized by one thread and then read-only accessed by other threads.Eliminating monitors on this kind of objects will greatly reduce the overhead of above systems in the same time not affecting the correctness.This paper presents the formal definition of the assign once object and provide a Java based object assign once analysis algorithm to find the assign once objects statically.The output of the analysis is then used in some state-of-the-art data race detection and deterministic replay systems.Experiments show assign once analysis can efficiently reduce runtime overhead of above systems,therefore expends the scope of their application.
What problem does this paper attempt to address?