基于逃逸分析的Java同步优化研究

来源 :浙江师范大学 | 被引量 : 0次 | 上传用户:vista_momo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
编写正确的程序并不容易,而编写正确的并发程序就更难了。与顺序执行的程序相比,并发程序中显然更加容易出现错误。同时,伴随着处理器数量的增加,有效地采用并发会变得越来越重要。为支持并发编程,Java语言提供了强大的多线程技术,能够帮助编程人员生成比较高效健壮安全可靠的并发程序。为了保证每个线程都能够正常执行原子操作,Java语言还引入了线程同步机制,主要是通过对共享数据加锁,来实现多个线程对共享资源的互斥访问。虽然粗粒度的保守锁机制能够比较容易地写出正确的代码,但是同步操作本身开销很大,加之过于悲观保守,在实际应用中会出现大量不必要的同步操作,这样对整个程序的运行效率会产生极大的负面影响。为保证并发程序的正确性,同时降低程序运行时的同步负载,本文重点提出一种新的基于逃逸分析的同步优化算法,并在开源的Java字节码优化框架——Soot工具上,实现了该算法。围绕同步优化,本文主要探讨并完成以下工作:(1)提出一种基于points-to分析的上下文相关、流不敏感、过程间的逃逸分析法该方法是以points-to分析为基础,利用线程逃逸判定规则和逃逸状态合并规则,过程内和过程间传播静态字段和线程对象及其字段的逃逸信息,并在此基础上,鉴别出整个Java应用程序和Java类库中线程局部的对象,进而将其上的同步操作做安全删除。对于算法的具体描述,主要集中在论文的第三章。(2)在“封闭世界”中实现逃逸分析本文利用Soot框架,实现了上述基于points-to分析的逃逸分析方法。具体实现过程如下:首先,利用Soot工具内置的points-to分析框架——SPARK,进行必要的points-to分析;然后,在此基础上,通过扩展Soot工具的流分析框架,实现本文的逃逸分析方法。SPECjvm98测试基准表明,本文逃逸分析方法的静态同步删除率可达15.7%-99.2%(平均为55.9%)。对于算法实现的具体描述,主要集中在论文的第四章。
其他文献
本科教学工作水平评估是教育部为进一步加强国家对高等院校教学工作的管理与指导而进行的认证。教育部确立了对普通高等院校进行五年一轮的评估制度,实践表明,开展此项工作,对规
本文主要讨论高维空间球集最小球覆盖问题和二维空间圆集最小圆覆盖问题。高维空间最小球覆盖问题是指对于给定的高维空间球集S,求解覆盖S中所有球的最小球。二维空间最小圆
工作流是业务流程的计算机化或自动化。工作流管理系统是一个软件系统,它完成工作流的定义和管理,并依据在系统中预先定义好的工作流逻辑进行实例的执行。工作流技术要解决的
汉语属于分析性语言,缺乏严格意义上的形态变化,汉语的副词承担着繁重的语法任务,在汉语语法系统中具有重要地位。副词在自然语言理解与生成中的重要性不言而喻。目前已有的
容错编码技术是针对数据传输与存储系统所面临的容错信道,保证数据高效、可靠传输与存储的一种前向纠错编码技术.随着P2P网络、多播传输等技术的发展,基于数据块或数据包的大
从生物序列中识别基序是生物信息学中的一个热点问题,也是生物学中研究基因调控机制的基础计算问题之一。由于基序长度较短、非百分百保守以及生物数据复杂性高等原因,通过计
边缘检测技术是图像分析的重要内容,也是图像处理领域中一种重要的预处理技术,受到了人们广泛的关注和重视。由于实际应用中图像质量的优劣性和目标的复杂性,进行边缘检测时
随着电子商务的普及与发展,大部分网络消费者在购买商品前都会浏览商品的用户评论信息,这些评论信息不仅对消费者做购买决策有帮助,对生产厂家或电商公司获取商品市场反馈也
中国是一个多民族组成的国家,文化多种多样,语言沟通成为促进民族发展、民族团结和共同繁荣的重要因素,而语言翻译是解决语言沟通不畅问题的主要手段。然而人工翻译已经无法
由于教学理论的发展,现代社会对于人才教育的方式也由传统的教师为中心转变为学生为主体的教学模式。网络化教学E-learning作为一种依托科学技术而发展起来的教学方式正好满