Incremental Detection of Data Race for Java Programs
暂无分享,去创建一个
Static race detection techniques consume no extra run-time cost but have lower precision,while dynamic ones have higher precision but consume extra run-time cost due to instrumentation.A new precise and efficient algorithm on incrementally detecting potential data races in Java programs is presented,which is implemented as a race detection pass in the just-in-time(JIT) compiler of the Java virtual machine.The algorithm combines lockset-based and happens-before-relation-based detection.Then the algorithm does an intra-method analysis on each method compiled by JIT in turn,and collects summaries independent of the context.The context-sensitive inter-thread analysis is proposed based on the method summaries,to compute incremental race information.The resulting information is output in time.Experimental results show that the algorithm has no instrumentation cost and unlimited program scale,and that the algorithm has the similar precision as O'Callahan,et al's algorithm on dynamic race detection,and consumes only 2%-4% of the total compilation time.