Java程序数据竞争的增量式检测
2009-09-18张昱郝允允
西安交通大学学报 2009年8期
张 昱 郝允允
摘要:针对静态竞争检测无额外运行开销但精度低,而动态竞争检测精度高但因插桩有额外运行开销,在实际Java虚拟机的即时编译器中以竞争检测遍形式设计实现了一种精确有效的增量式竞争检测算法,结合锁集和发生序关系,依次对即时编译的每个方法进行一次方法内分析,收集独立于上下文的方法摘要,并以方法摘要为基础自下而上进行上下文敏感的跨线程方法间分析,增量计算并及时输出潜在的竞争信息,实验表明,算法对应用程序无插桩且不受程序规模限制,具有与Ocallahan等人的动态竞争检测算法类似的精度,检测时间仅占总编译时间的2%~4%。