###
DOI:
Journal of Software:2008.19(3):522-532

在开放世界中实现逃逸分析
史晓华,吴甘沙,金茂忠,LUEHGuei-Yuan,刘超,王雷
(北京航空航天大学 软件工程研究所,北京 100083;Programming System Laboratory, Microprocessor Technology Labs, Intel, Santa Clara, CA, USA)
Escape Analysis: Embrace the Open World
SHI Xiao-Hua,WU Gan-Sha,JIN Mao-Zhong,LUEH Guei-Yuan,LIU Chao,WANG Lei
()
Abstract
Chart / table
Reference
Similar Articles
Article :Browse 3089   Download 2913
Received:October 29, 2006    Revised:March 06, 2007
> 中文摘要: 逃逸分析(escape analysis)是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法.此前绝大多数逃逸分析的实现都基于一个所谓"封闭世界(closed world)"的前提:所有可能被执行的方法在做逃逸分析前都已经得知,并且,程序的实际运行不会改变它们之间的调用关系.但当真实的Java程序运行时,这样的假设并不成立.Java程序拥有的许多特性,例如动态类加载、调用本地函数以及反射程序调用等等,都将打破所谓"封闭世界"的约定.这样的真实运行环境被称为"开放世界".在开放世界中,实现逃逸分析将面临许多重要的问题,例如,能否正确、全面地捕捉动态载入的类和方法,并分析它们与原有程序的关系;逃逸分析算法的复杂性是否能够得以控制,以保证即时编译器的重新分析时间不会过长,等等.提出一个新的逃逸分析架构,它可以有效地处理上述开放世界所面临的问题.该分析架构将增量分析Java程序,动态捕获新载入和调用的类及方法,同时,在复杂性和精度之间进行权衡,正确、有效地降低程序的运行负载.该分析架构已经在Intel的开放式Java虚拟机系统ORP中实现,经过实际测试,可以有效地消除一些主要基准测试程序,如SPECjbb2000和SPECjvm98的db中70%~94%的同步操作,大幅度地提高15%~31%的程序的运行速度.
中文关键词: 逃逸分析  即时编译器  Java虚拟机
Abstract:Prior implementations of escape analysis (EA) make a closed-world/whole-program assumption: All methods that can possibly be executed during the program execution are known statically. The Java programming language has several language features, e.g., dynamic class loading, native invocation and reflection, which break the closed-world assumption. These open-world features raise a major concern on the practicability and applicability of the prior approaches to Java applications that use or rely on the features. This paper proposes and evaluates a new escape analysis framework which handles the Java open-world features. The framework also provides a mechanism that controls the analysis complexity to reduce the runtime overhead with acceptable precision. The result shows that the EA framework, which is implemented in Intel's Open Runtime Platform on X86, eliminates 70% and 94% of dynamic synchronized operations and improves the runtime performance 15.77% and 31.28%, for SPECjbb2000 and db of SPECjvm98 respectively.
文章编号:     中图分类号:    文献标志码:
基金项目:Supported by the National Natural Science Foundation of Chinaunder Grant No.60573084(国家自然科学基金) Supported by the National Natural Science Foundation of Chinaunder Grant No.60573084(国家自然科学基金)
Foundation items:
Reference text:

史晓华,吴甘沙,金茂忠,LUEH Guei-Yuan,刘 超,王 雷.在开放世界中实现逃逸分析.软件学报,2008,19(3):522-532

SHI Xiao-Hua,WU Gan-Sha,JIN Mao-Zhong,LUEH Guei-Yuan,LIU Chao,WANG Lei.Escape Analysis: Embrace the Open World.Journal of Software,2008,19(3):522-532