NUMA架构中高效垃圾收集算法的设计与实现

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:lizhigang3637
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
Java语言是一种面向对象的语言,广泛应用于服务器端、客户端以及移动计算等应用领域中,Java语言一个主要的特点是自动内存管理。自动内存管理也被称为垃圾收集(garbagecollection,GC),它可以使程序员避免显示分配和回收内存引入的不必要的内存错误,从而提高软件开发效率。由于自动内存管理直接影响应用程序的性能,因此针对垃圾收集技术的相关研究也越来越多。  针对非一致性内存访问架构(non-uniform memory access architecture,NUMA)上Java应用运行过程以及GC过程存在大量的远程内存读写导致性能降低的问题,本文对新对象分配过程以及GC过程的各个阶段进行分析与研究,提出基于NUMA架构的高效GC算法,本文的主要贡献如下:  第一,基于NUMA架构,重新设计Java虚拟机中堆空间布局。通过修改新对象的分配机制以及提供内存负载均衡的方式,在保证内存利用率的情况下大量减少了后续Java应用程序运行过程中的远程访问,从而提高了NUMA架构上Java应用程序的性能。以Godson-3 NUMA架构为例,针对NUMA架构的新对象分配机制可以使SpecJVM2008应用程序的性能平均提升10%,最高达到54%。  第二,通过控制GC过程中扫描活跃对象阶段的初始根对象选取、动态负载均衡阶段截取任务队列的选取以及复制活跃对象阶段对象复制位置的选取,在NUMA架构上,GC过程中的远程访问次数大大减少。优化的GC机制对所有NUMA架构具有通用性,以Godson-3处理器的NUMA平台为例,实验结果显示,优化的GC机制极大地缩短了GC的时间,提高了应用程序的性能以及降低了应用程序性能的波动性。在SPECjvm2008测试中,GC时间平均缩短了14.6%(4.1%~41.58%),应用程序的性能平均提升了4.68%(最高提升17.8%),应用程序的性能波动性降低了76.2%;在某龙芯办公自动化系统中,本文提出的GC算法能够使某页面响应时间在不同的并发访问量时下降9.09%~29.03%。
其他文献
随着计算机软件日益的庞大和复杂,软件存在的缺陷和问题越来越难以发现,软件测试在软件生存期中的地位越来越重要。软件测试是对软件需求分析、设计规格说明和编码的最终复审
适量运动是保障身体健康的关键因素之一,运动不足或者运动过量都会对身体健康造成不良影响,严重者会导致死亡。不同运动方式(步行、跑步、上下楼梯)的运动强度不同,因此有必要识别
舆情分析可以更清晰化社会各个阶层民众对各种社会现象和社会问题的关注度、看法以及意见和行为倾向,从而为政府相关部门提供更广泛更深入更及时的信息参考和决策支持。随着互
近几年,网络蠕虫已经成为计算机网络安全中的重大问题。网络蠕虫是一段独立的恶意代码,具备自我复制和传播的能力。传统的网络蠕虫编写成本虽然简单,但是其自我繁殖、恶意发
随着半导体技术的不断发展,微处理器与主存速度之间的差距日益增大,通过在二者之间设置一级或多级Cache,能够有效的缓解访存压力。然而,在有限的芯片面积限制下,设计者需要在片内C
在众多P2P网络架构中,基于分布式哈希表(DHT)技术的结构化P2P网络架构具有最好的任务负载均衡性和网络拓扑稳定性,是近几年P2P研究领域的热点.但是目前各种P2P网络架构并没有
随着社会信息化的发展以及安全保障的需求,实时视频监控技术得到了快速的发展和改进。在学校、城市交通、银行、医院等生活中的各个领域,实时视频监控技术都发挥出了重要作用
近几年来,随着数字录音设备的普及,数字录音大有取代以前模拟录音的趋势。各种音频处理算法和软件的广泛应用,使得一般的用户能轻易地对数字录音进行篡改而不留下痕迹,因此从录音
在传统电信产业中,产品由各式各样的硬件设备承载,而随着新技术和服务的创新加速,硬件设备的生命周期越来越短,服务提供商的网络运营日趋复杂,阻碍了业务创新。而随着互联网的快速
在互联网技术飞速发展的今天,微信、米聊等互联网应用给传统电信通信带来巨大的冲击;与此同时,互联网用户也渴望享受更加可靠、稳定、方便的电话网服务。为了很好的解决这个问