基于即时编译器的Java语言同步优化研究

来源 :中国科学技术大学 | 被引量 : 0次 | 上传用户:wuzhenlikk
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
随着新兴并行体系结构的普及,主流应用程序由单线程向多线程转变的趋势越来越明显。但是,生成高效健壮安全可靠的并行程序并非易事,其中以多线程间同步策略的设计和实现最为关键。实现多线程间同步的一种主要方式是对共享数据加锁,锁能安全、简单、有效地实现对共享数据的保护,但锁操作本身的开销非常大,而且由于其过于悲观保守,在实际应用中会出现大量冗余的锁操作,这样对整个程序的运行效率会产生极大的负面影响。为了弥补锁同步的不足之处,本文介绍了多种锁同步的优化策略,重点提出两种基于锁粗化的同步优化算法,并在开源的JavaSE项目Harmony上实现这两种算法。围绕锁同步的优化,本文主要探讨并完成以下工作:1、在实际的Java虚拟机Harmony中设计实现一个插桩取样系统设计开发这样的插桩取样系统,旨在收集运行时信息,例如,各种同步操作在运行过程中实际执行的次数等,帮助调试、分析和评估各类同步优化算法。2、在Harmony中实现Stoodley等提出的基于锁粗化的同步优化算法[21]Stoodley等提出的算法能删除过程内的嵌套同步操作中的内层同步操作以及合并过程内的相邻同步操作,以减少同步操作的数量。通过在Harmony中设计实现它,可以为提出并实现新的同步优化算法提供思路。3、提出并实现一种利用即时编译器外提循环内同步操作的过程内同步优化算法该算法能将循环中的部分同步操作外提至循环外,大量减少运行时实际执行的同步操作数,充分挖掘了过程内的同步优化机会。笔者在Harmony的即时编译器中以高级中间表示上的优化遍形式实现该算法,实验结果表明它对specjbb2005吞吐量的提高可达到1%~3%。4、提出并实现一种过程间的同步方法优化框架该优化框架旨在分析出无须同步的同步方法调用点并将其改成对相应同步方法的非同步版本的调用。笔者在Harmony中实现了基于该框架的一个算法,实验结果表明使用该算法对specjbb2005吞吐量的提高可达到2%~4%。
其他文献
配电自动化是提高配电网供电可靠性、安全性以及服务质量,提高工作效率、降低运行成本的必要手段与捷径。本文在配电网自动化发展的基础上,讨论了配电自动化的故障处理模式,
金融创新是当代金融发展的重要推动力。自20世纪80年代以来,金融创新作为一次波及全球的金融改革的浪潮,给各国金融和世界经济带来了深刻的变革。但金融创新是一把“双刃剑”
中国现代学校音乐教育观念是伴随着现代美育思想的产生而形成的。从"音乐美育"到"音乐审美教育"到"以审美为核心的音乐教育"可以称为20世纪初以来中国音乐教育思想发展的脉络
近些年以来,国际市场方面的动荡加上后金融危机使很多企业明白了资金对于企业发展和经营的重要性。企业资金流的平稳和营运资金的管理是寻求发展所必须要做到的。资金运营的
高尿酸血症发生的机制为尿酸生成增多或肾脏尿酸排泄减少。目前国内外高尿酸血症模型的复制方法主要有3种 :①给予模型动物饲喂、注射次黄嘌呤 6 0 0~ 1 0 0 0mg·kg-1 、黄嘌
<正>延政发[2014]9号各县区人民政府,市政府各有关部门、各直属机构:为了加快推进企业信用体系建设,建立有利于市场经济持续健康发展的长效监管机制,现就加强企业信用监管,推
Java语言采用垃圾收集器(Garbage Collector,GC)在堆上处理Java应用程序的对象分配请求并自动管理对象的回收。GC减轻了程序员管理内存的负担,但是需要耗费大量的时空开销识
随着气井生产的进行,地层中存在的可动水会不断在井底聚集,造成气井生产水气比上升,严重影响气井产量和产能,并影响整个气田的储量评估及开发方案的实施。从气井拟稳定流动状
目的研究哮喘豚鼠肺内不同密度嗜酸细胞(Eos)凋亡与bcl-2 mRNA表达的关系及地塞米松(DM)对它们的影响。方法应用DM干预哮喘豚鼠,分离哮喘豚鼠支气管肺泡灌洗液中不同密度Eos,
针对目前中学语文写作教学中普遍存在的作文难教、作文难写的局面,本文主张在写作教学中开发和利用生活资源,为写作教学引来源头活水,真正帮助学生解决写作时无米下锅的困难,