即时编译器辅助垃圾收集中的对象生命期分析研究  被引量:1

Study on Object Lifetime Analysis for Just-in-Time Compiler Assisted Garbage Collection

在线阅读下载全文

作  者:袁丽娜[1] 张昱[1,2] 

机构地区:[1]中国科学技术大学计算机科学与技术学院,合肥230027 [2]中国科学技术大学苏州研究院软件安全实验室,江苏苏州215123

出  处:《西安交通大学学报》2010年第2期50-55,共6页Journal of Xi'an Jiaotong University

基  金:Intel公司研究基金资助项目;国家自然科学基金资助项目(60673126)

摘  要:提出一种对象生命期分析算法,利用即时编译器分析应用程序并在其中安插显式释放对象等指令,通过辅助垃圾收集器改进对象的回收与分配来减轻垃圾收集器自动回收的负担.该算法结合了活跃变量分析和指针逃逸分析,对Java程序的每个方法仅分析一次,而且是过程间的,对域、上下文是敏感的,能够分析识别应用程序中的非全局对象及其死亡位置.实验结果表明:算法的执行时间占总编译时间的3.6%~5.3%;相比一般的Salagnac等指针逃逸分析,能识别出更多的对象生命期信息,而且对象死亡位置能精确到Java方法控制流图中的基本块;在即时编译器辅助的垃圾收集优化中能够显式地回收较多的内存空间.An object lifetime analysis algorithm is presented, which analyzes Java applications in just-in-time compiler in order to insert instructions to explicitly "free" objects into the applications, and reduces garbage collection overhead by assisting garbage collector in improving object allocation and reclamation. The proposed algorithm combines the live variable analysis and the pointer and escape analysis, and analyzes each method in Java applications only once. Moreover, the algorithm is inter-procedural, field sensitive and context sensitive, which can identify nonglobal objects and their dead locations in Java applications. Experimental results show that the proposed algorithm consumes 3.6%-5.3% of the total compilation time. The algorithm not only can identify the lifetime information of more objects than traditional ordinary escape analysis (such as that of Salagnac, et al), but also can determine the object dead locations with the basic block precision in control flow graph of a method; Moreover, the algorithm can explicitly reclaims more memory spaces in just-in-time compiler assisted garbage collection.

关 键 词:对象生命期 活跃变量分析 指针逃逸分析 内存管理优化 

分 类 号:TP311[自动化与计算机技术—计算机软件与理论] TP314[自动化与计算机技术—计算机科学与技术]

 

参考文献:

正在载入数据...

 

二级参考文献:

正在载入数据...

 

耦合文献:

正在载入数据...

 

引证文献:

正在载入数据...

 

二级引证文献:

正在载入数据...

 

同被引文献:

正在载入数据...

 

相关期刊文献:

正在载入数据...

相关的主题
相关的作者对象
相关的机构对象