首页> 中文期刊> 《软件学报》 >在开放世界中实现逃逸分析

在开放世界中实现逃逸分析

         

摘要

逃逸分析(escape allalysis)是一种可以有效减少Java程序中同步负载和内存堆分配压力的跨函数全局数据流分析算法.此前绝大多数逃选分析的实现都基于一个所谓"封闭世界(closed world)"的前提:所有可能被执行的方法在做逃逸分析前都已经得知,并且,程序的实际运行不会改变它们之间的调用关系.但当真实的Java程序运行时,这样的假设并不成立.Java程序拥有的许多特性,例如动态类加载、调用本地函数以及反射程序调用等等,都将打破所谓"封闭世界"的约定.这样的真实运行环境被称为"开放世界".在开放世界中,实现逃逸分析将面临许多重要的问题,例如,能否正确,全面地捕捉动态载入的类和方法,并分析它们与原有程序的关系;逃逸分析算法的复杂性是否能够得以控制,以保证即时编译器的重新分析时间不会过长,等等.提出一个新的逃逸分析架构,它可以有效地处理上述开放世界所面临的问题.该分析架构将增量分析Java程序,动态捕获新载入和调用的类及方法,同时,在复杂性和精度之间进行权衡,正确、有效地降低程序的运行负载.该分析架构已经在Intel的开放式Java虚拟机系统ORP中实现,经过实际测试,可以有效地消除一些主要基准测试程序,如SPECjbb2000和SPECjvm98的db中70%~94%的同步操作,大幅度地提高15%~31%的程序的运行速度.

著录项

  • 来源
    《软件学报》 |2008年第3期|522-532|共11页
  • 作者单位

    北京航空航天大学软件工程研究所;

    北京;

    100083;

    Programming System Laboratory;

    Microprocessor Technology Labs;

    Intel;

    Santa Clara;

    CA;

    USA;

    北京航空航天大学软件工程研究所;

    北京;

    100083;

    Programming System Laboratory;

    Microprocessor Technology Labs;

    Intel;

    Santa Clara;

    CA;

    USA;

    北京航空航天大学软件工程研究所;

    北京;

    100083;

    北京航空航天大学软件工程研究所;

    北京;

    100083;

  • 原文格式 PDF
  • 正文语种 chi
  • 中图分类 理论、方法;
  • 关键词

    逃逸分析; 即时编译器; Java虚拟机;

相似文献

  • 中文文献
  • 外文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号