DiSL编织器的实现与优化

来源 :上海交通大学 | 被引量 : 0次 | 上传用户:fulva
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
动态程序分析工具被用于各式各样的软件工程任务中,如性能分析、调试、测试、程序理解以及逆向工程等。开发动态程序分析工具的其中一项关键技术便是字节码注入。许多低层次的字节码工程库支持在任意位置注入任意字节码,但是与此同时导致开发、维护工作不仅耗费大,而且容易发生错误。另一方面,研究者尝试将面向方面语言应用到动态程序分析工具的开发上。然而,尽管面向方面语言为动态程序分析工具的开发提供一种高层次抽象的编程模型,像AspectJ这样的主流面向方面语言的连接点模型并不适用于部分动态程序分析,而且其用以实现部分特殊语言特性而生成的代码将导致较大的性能开销。近期来,面向方面语言DiSL被用于改善动态程序分析工具的开发条件。DiSL为开发者提供的特性包括有允许选择任意字节码序列作为连接点的开放连接点模型、可扩展的静态上下文信息访问以及允许在注入阶段执行的静态分析。DiSL语言本身保证丰富的语言表义性以及高层次且对用户友好的编程模型,但它需要一款确保所注入代码的高执行效率的编织器实现。此外,尽管DiSL提供更高层次的抽象以支持高效字节码注入逻辑的快速开发,开发者往往需要抽取部分代码以便在注入时执行。否则,这些代码将被注入到目标类中,因此有可能导致死代码的出现,并依赖于实时优化将之去除。如果DiSL编织器能够提供对所注入代码的优化,那么将极大地简化DiSL的编程模型。本论文的主要贡献由如下两方面组成:1.本文实现一款高效的DiSL编织器,并通过已转换为DiSL语言的动态程序分析工具Senseo来测评该编织器。2.本文在DiSL编织器中集成部分计值器Turbo,并通过四个案例来说明应用Turbo的好处。而后利用其中一个案例来测评Turbo对注入时间以及运行时执行效率的影响。本文所展示的DiSL编织器高效实现提供对所注入代码的直接内联、支持高效数据传递的虚拟局部变量及线程局部变量、对静态上下文信息及动态上下文信息的高效访问和支持高效处理参数的机制。在本文中,我们将一个已有的基于AspectJ的动态程序分析工具转换为DiSL版本,并通过比较来展示DiSL编织器的优势。部分计值器Turbo则通过常量传播、分支消除、基于模式的代码精简以及注入式执行不含边际效应的方法等步骤来优化所要注入的代码。我们通过若干个案例来说明在应用Turbo的情况下,开发者无需将部分代码提取成额外的Java类中以便在注入时执行。DiSL编织器的实验结果表明,AspectJ版本的Senseo引入6.47倍的性能开销,而在相同代码覆盖的情况下,DiSL版本的Senseo的性能开销仅为基线版本的3.09倍。Turbo的实验结果表明,尽管Turbo引入4.2倍的注入时间性能开销而手工优化版本仅比基线版本慢10%,但是它们都达到13倍的稳定阶段执行效率加速比。总而言之,DiSL编织器相较AspectJ而言耗费更小的性能开销,而Turbo在引入额外注入时间开销的前提下,经过其优化的注入代码可以达到手工优化版本的稳定阶段执行效率。
其他文献
随着互联网技术的迅速发展,在线中文网页的数量迅猛增加,互联网上的信息量越来越大。搜索引擎能够有效地组织和分析海量的信息资源,帮助用户迅速地获取其所需要的知识和信息。然
随着互联网上的信息量越来越大,搜索引擎已经成为检索网络信息不可或缺的工具。然而日益增长的电子信息量使得目前的通用搜索引擎越来越不能满足用户精确检索信息的需要。  
科学技术的发展促进了各个产业信息化水平的提高,对于本单位而言,由于设备信息较多,而且以前采用传统的方式对机车设备进行管理,产生的问题较多,因此针对这个问题,急需要开发
协议分析技术在网络安全领域有着重要的作用。本文首先对应用层的协议分析、协议识别技术做了,深入研究,结合具体协议分析系统,提出了一个协议处理模型。在此模型的基础上我们采
目的 研讨习惯性流产患者使用小剂量阿司匹林治疗对妊娠结局的影响.方法 选择我院收治于2017年1月至2018年10月的72例习惯性流产患者做课题研究,并通过电脑进行随机分组,将24
采用自然语言描述的非形式的规格说明通常具有模糊性和歧义性,这往往不利于软件质量和生产率的提高。为了克服自然语言描述规格说明的缺陷,人们提出了形式化方法。Z是目前最
位置相关信息服务,是通过无线通信网络,提供用户所需的和地理位置相关的应用和数据,如查找陌生地方的信息、本地生活方式数据等,它是在移动计算技术高速发展的基础上,由需求推动的
随着Internet的发展和后PC时代的到来,嵌入式产品越来越广泛地应用于各个领域。人们对嵌入式产品的要求也日益提高,不仅要求功能完善,而且要求友好的人机交互能力,这一切促使嵌入
在日益信息化的当代世界,网上各种信息流通和各种电子商务的开展过程中,提高信息安全成了一个非常紧迫的课题。为了在数字世界中实现个人通信的私密性以及完成各种授权、认证等