主页期刊介绍编委会编辑部服务介绍道德声明在线审稿编委办公编辑办公English
2018-2019年专刊出版计划 微信服务介绍 最新一期:2019年第8期
     
在线出版
各期目录
纸质出版
分辑系列
论文检索
论文排行
综述文章
专刊文章
美文分享
各期封面
E-mail Alerts
RSS
旧版入口
中国科学院软件研究所
  
投稿指南 问题解答 下载区 收费标准 在线投稿
史晓华,吴甘沙,金茂忠,LUEH Guei-Yuan,刘 超,王 雷.在开放世界中实现逃逸分析.软件学报,2008,19(3):522-532
在开放世界中实现逃逸分析
Escape Analysis: Embrace the Open World
投稿时间:2006-10-29  修订日期:2007-03-06
DOI:
中文关键词:  逃逸分析  即时编译器  Java虚拟机
英文关键词:escape analysis  just-in-time compiler  Java virtual machine
基金项目:Supported by the National Natural Science Foundation of Chinaunder Grant No.60573084(国家自然科学基金)
作者单位
史晓华 北京航空航天大学 软件工程研究所,北京 100083 
吴甘沙 Programming System Laboratory, Microprocessor Technology Labs, Intel, Santa Clara, CA, USA 
金茂忠 北京航空航天大学 软件工程研究所,北京 100083 
LUEH Guei-Yuan Programming System Laboratory, Microprocessor Technology Labs, Intel, Santa Clara, CA, USA 
刘 超 北京航空航天大学 软件工程研究所,北京 100083 
王 雷 北京航空航天大学 软件工程研究所,北京 100083 
摘要点击次数: 3095
全文下载次数: 2920
中文摘要:
      逃逸分析(escape analysis)是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法.此前绝大多数逃逸分析的实现都基于一个所谓"封闭世界(closed world)"的前提:所有可能被执行的方法在做逃逸分析前都已经得知,并且,程序的实际运行不会改变它们之间的调用关系.但当真实的Java程序运行时,这样的假设并不成立.Java程序拥有的许多特性,例如动态类加载、调用本地函数以及反射程序调用等等,都将打破所谓"封闭世界"的约定.这样的真实运行环境被称为"开放世界".在开放世界中,实现逃逸分析将面临许多重要的问题,例如,能否正确、全面地捕捉动态载入的类和方法,并分析它们与原有程序的关系;逃逸分析算法的复杂性是否能够得以控制,以保证即时编译器的重新分析时间不会过长,等等.提出一个新的逃逸分析架构,它可以有效地处理上述开放世界所面临的问题.该分析架构将增量分析Java程序,动态捕获新载入和调用的类及方法,同时,在复杂性和精度之间进行权衡,正确、有效地降低程序的运行负载.该分析架构已经在Intel的开放式Java虚拟机系统ORP中实现,经过实际测试,可以有效地消除一些主要基准测试程序,如SPECjbb2000和SPECjvm98的db中70%~94%的同步操作,大幅度地提高15%~31%的程序的运行速度.
英文摘要:
      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.
HTML  下载PDF全文  查看/发表评论  下载PDF阅读器
 

京公网安备 11040202500064号

主办单位:中国科学院软件研究所 中国计算机学会 京ICP备05046678号-4
编辑部电话:+86-10-62562563 E-mail: jos@iscas.ac.cn
Copyright 中国科学院软件研究所《软件学报》版权所有 All Rights Reserved
本刊全文数据库版权所有,未经许可,不得转载,本刊保留追究法律责任的权利