论文部分内容阅读
近年来由于计算机安全技术的发展和计算机网络带宽的提高,传统的计算模型随着动态编译技术的发展逐渐演变为异构平台上计算资源的共享模型。这不仅降低了异构平台上硬件的复杂度,扩展了软件优化的空间,增加了对用户的透明度,同时还改善了平台上各系统内部和存储系统的使用效率。
动态编译器作为近年来编译技术领域的热点研究问题得到了很大的发展,然而作为一种运行时编译技术,编译过程在运行中所占用的时间始终是提高动态编译效率、缩短程序运行时间的瓶颈。我们首先通过对动态编译器的架构进行剖析,指出其与传统静态编译器之间的差异,然后给出动态编译器独有的测试方法和测试环境,并且通过指令级和线程级两个层次的优化,用实验数据证明优化后的动态编译其性能有显著的提高。本文的主要创造性工作由以下三部分组成:
1. 针对动态编译器性能测试不够稳定的缺点,提出了动态编译器在实际应用程序上的性能测试策略,包括性能测试的要求、方法和具体实现,然后在动态编译器性能测试的基础上给出性能测试方案的分析与比较,并通过对同步模式的不断改进,提出了用基于历史记录的同步模式测量动态编译器的性能。
2. 针对动态编译器代码执行效率不高的缺点,根据时间、空间局部性原则和编译优化的基本原理,基于动态编译器的设计架构,提出了动态编译器的指令级优化方法。用上述方法设计了指令优化的数据结构和算法,经过分析得到了最佳实现方案,并通过实验说明该设计方案在性能上与一般的动态编译器相比有显著的提高。
3. 针对动态编译器编译效率不高的缺点,利用多线程并行原理,提出了并行编译线程的思想。通过线程之间的通信实现了基于线程的协作,从而奠定了编译线程的技术基础。在此基础上通过分析逐一解决了编译效率的三个瓶颈,进一步改善了动态编译器的性能,实验证明该设计方案在性能上优于单线程动态编译器。
上述工作使我们对动态编译器的设计和分析有了清晰而深刻的认识,在多线程环境下如果能合理分配编译工作,提高目标代码的质量,动态编译器的性能可以有相当大的改善。