Java虚拟机的内存管理及优化

来源 :中国科学院计算技术研究所 | 被引量 : 0次 | 上传用户:duzitengnihaoma
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Java语言是一种面向对象的语言,它运行在Java虚拟机的平台之上.Java语言具有模块化好,跨平台和类型安全等特点.这些特点使得Java语言更适合于被用来进行快速安全的大规模的软件开发,因此该语言已经被广泛地使用在服务器,客户端和移动计算等应用领域中.Java语言的另一个软件工程上的优势来自于Java虚拟机中自动内存管理的使用.自动内存管理也被称作垃圾收集(garbage collection),它能够使程序员避免对显式分配和回收内存的依赖,从而在很大程度上减少了内存泄漏及悬挂指针等内存错误的发生,提高了软件开发的效率.垃圾收集所具有的这种优势也使得它被广泛地部署在除Java之外的多种运行时系统之中. 然而,尽管垃圾收集的引入能够提高软件开发的效率,但是垃圾收集系统却有可能会给应用程序的性能带来负面的影响,这主要是由于垃圾收集的运行时间是被包括在程序运行的总时间之内的.另外,一些垃圾收集算法能够移动对象的位置,因此,这些垃圾收集算法能够对应用程序的数据对象的局部性造成影响,从而影响程序的性能.一个良好的垃圾收集的设计和实现应该能够尽量地减少收集所消耗的运行时间,提高收集的效率,减少垃圾收集所带来的暂停时间同时尽可能地获取好的对象局部性. 围绕垃圾收集所带来的问题及其对应用程序性能的影响,本文系统深入地研究了Java虚拟机中的垃圾收集机制,其主要的创新和贡献如下: 第一,设计并实现了一个支持灵活的运行时切换垃圾收集算法的内存管理软件框架--RSMTk,并且避免了在收集算法切换过程中由于分配函数的内联而引起的方法重编译.比较了不同的垃圾收集算法和不同的对象拷贝序对应用程序的对象局部性的影响.比较分析了在拷贝垃圾收集中,分代内的不同分区间的拷贝序和不同分代间的拷贝序对对象局部性的影响.结果表明,分代内的不同分区间的对象拷贝序是影响对象局部性的主要因素.构建了一个结合预取和局部性优化技术的软件框架,结果发现基于规则的数组结构的预取更容易取得性能的改进.调查了on-chip的local memory在Java应用中对内存系统性能的影响.结果表明,on-chip local memory和cache相结合的系统能够比cache-only的系统具有更优的性能. 第二,分析了服务器端Java应用中的对象生命周期行为,发现其中存在着大量长生命周期的对象.设计并实现了一种混合垃圾收集,利用几种经典收集算法的运行时动态切换及其相互的协作来减少垃圾收集对长生命周期对象的重复操作.使用SPECjbb2005对该算法进行了评估.实验结果表明,与经典的分代垃圾收集相比,该混合收集算法能够使SPECjbb2005的Throughput分值提高3﹪~25﹪. 第三,设计并实现了一种新的并行垃圾收集标记算法--task-pushing.该算法利用了CSP(Communicating Sequential Processes,通信顺序进程)的思想,通过将标记过程构造成一个处理网络来避免对同步原语的依赖同时获得良好的动态负载平衡.为了支持这种无需同步操作的并行标记算法,设计了一种高性能的通信队列,该队列利用现有硬件所支持的字对齐访问的原子性来避免对同步原语的使用.实验结果表明,与传统的work-stealing技术相比,task-pushing所带来的性能好处会随着处理器个数的增加而变得越来越大.对于pseudojbb和GCOld这两个服务器端的基准测试程序来说,当处理器的个数为16时,task-pushing的加速比(speedup)比work-stealing分别提高了17.4﹪和13.5﹪.
其他文献
学位
作为自然语言处理一个新的研究方向,话题识别与跟踪旨在发展一系列基于事件的信息组织技术,以实现对新闻报道信息流中新话题的自动识别以及对已知话题的动态跟踪.自1997年以
软件生产是一个相当复杂的过程。由于软件过程的复杂多变,我们无法定义一个标准的过程将其应用到各种软件项目中。另一方面,不同的软件项目的过程虽然千差万别,但这些过程中的某
种子是一个特殊的、不可替代的最基本的生产资料,是农业科学技术和各种农业生产资料发挥作用的重要载体,是决定农产品质量和产量的根本内因。 优良的种子是农业增产、增效的
计算机支持的协同工作作为新兴的研究领域,在近几年有很大的发展,且受到广泛的重视,它致力于研究人们在一起的工作方式,通过计算机技术和通信技术的结合,把计算机从传统的孤立的工
随着云计算技术与应用的发展,数据中心遇到新的技术挑战。内存计算等大数据处理应用,使得数据中心对内存的需求量进一步增加,单节点内存容量不足的问题更加严重。数据中心应用具
随着无线通信的快速发展,频谱资源的稀缺促使各种提高频谱利用率的技术得到发展,其中小蜂窝技术和多输入多输出(Multi-Input Multi-Output,MIMO)技术引起了越来越多的注意。不同
无论是基于云平台的高性能计算(HPC in Cloud),还是基于超算中心的云计算服务,高性能计算和云计算在基础设施上的融合都是数据中心重要发展趋势。在融合的趋势下,高带宽、低延时
二十一世纪,人类迈入了"信息爆炸时代".在这个时代,信息靠多种形态信息媒体透过复杂的信息网络系统传递.Internet的盛行,把信息的交互传递推向至高点.在纷繁杂乱的信息爆炸时
缩略语处理是自然语言处理的一个重要任务,具有较强实际应用价值。本文探讨汉语缩略语处理的两个重要方面:基于文档的缩略语自动识别,及基于全称的缩略语自动预测。 对于缩略