張 昱 郝允允
摘要:針對靜態(tài)競爭檢測無額外運行開銷但精度低,而動態(tài)競爭檢測精度高但因插樁有額外運行開銷,在實際Java虛擬機的即時編譯器中以競爭檢測遍形式設計實現(xiàn)了一種精確有效的增量式競爭檢測算法,結(jié)合鎖集和發(fā)生序關(guān)系,依次對即時編譯的每個方法進行一次方法內(nèi)分析,收集獨立于上下文的方法摘要,并以方法摘要為基礎(chǔ)自下而上進行上下文敏感的跨線程方法間分析,增量計算并及時輸出潛在的競爭信息,實驗表明,算法對應用程序無插樁且不受程序規(guī)模限制,具有與Ocallahan等人的動態(tài)競爭檢測算法類似的精度,檢測時間僅占總編譯時間的2%~4%。