java se 6 性能白皮书

java se 6 性能白皮书

ID:18924047

大小:154.00 KB

页数:12页

时间:2018-09-27

java se 6 性能白皮书_第1页
java se 6 性能白皮书_第2页
java se 6 性能白皮书_第3页
java se 6 性能白皮书_第4页
java se 6 性能白皮书_第5页
资源描述:

《java se 6 性能白皮书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JavaSE6性能白皮书1 简介  JavaSE6(JavaPlatformStandardEdition6)的一个主要设计原则就是以性能缺陷为目标,通过当前最流行的一些Java基准测试以及与Java社区的紧密协作来确定对性能影响最大的增强关键领域,从而提高性能和可伸缩性。  本指南将概述JavaStandardEdition6中新增功能和可伸缩性改进,同时提供各种行业标准和内部开发的基准测试结果,以便演示这些性能改进的影响。  2 新增功能和性能增强  JavaSE6引入了一些新的功能和性能增强,为平台中的许多领域都提供了性能改进。这些改进包括:同步性能优化、编译器性能优化、新的并行

2、缩并垃圾收集器(ParallelCompactionCollector)、工效更高的并发低停顿垃圾收集器(ConcurrentLowPauseCollector),以及应用程序的启动性能。  2.1 运行时性能改进  2.1.1偏向锁  偏向锁(BiasedLocking)是一个优化的类,它通过消除与Java语言同步原语相关的原子操作改进无竞争同步性能。这些优化依赖于属性,它们不仅是大多数无竞争的监视器,而且在它们的生命期内最多被一个线程锁定。  对象通过监视器输入字节码或同步方法调用,“偏向”于第一个获取监视器的线程;随后与监视器相关的操作可以通过该线程执行而不需使用原子操作,从而获

3、得更好的性能,特别在多处理器机器上,这种性能改进尤为明显。  由多线程而不是单线程对“偏向”对象的锁定尝试,将引起相对较大的操作开销,由此偏向被撤销。消除原子操作的好处必需超过锁定撤销惩罚从而使该优化有利可图。  使用大量无竞争的同步将获得显著的速度提升,而其他使用某些锁定模式的应用程序运行可能缓慢。  偏向锁在JavaSE6以及未来版本中将被默认启用。要禁用偏向锁,请向命令行添加-XX:-UseBiasedLocking。  要了解关于偏向锁的更多详细信息,请参阅由KennethRussell和DavidDetlefs撰写的《ACMOOPSLA2006》文章:“使用偏向锁和批量重新偏

4、向(BulkRebiasing)消除与同步相关的原子操作”。  2.1.2 锁粗化  JavaSE6有一些锁定模式。在这些模式下锁被释放,然后在一段代码内被重新获得,在此之间没有可观察的操作出现。在那样的情况下,在hotspot中实施的锁粗化优化技术消除了加锁和解锁的操作(当一个锁被释放时,在解锁与下次加锁之间又没有意义的事情可干,那么可以重新获得该锁)。通过扩大现存同步区域基本上减少了同步工作的总量。围绕一个循环执行此操作可能导致一个锁被长期持有,因此锁粗化技术只在非循环的控制流上使用。  该功能默认使用。要禁用此功能,请向命令行添加下列选项:-XX:-EliminateLocks 

5、 2.1.3 自适应自旋  自适应自旋是一项优化技术。在该优化技术中,两阶段自旋再阻塞(spin-then-block)策略被尝试竞争同步输入操作的多线程使用。该技术启用多线程以避免对性能产生不合需要的影响,例如翻译后援缓存器(TranslationLookasideBuffers,TLB)的上下文切换和重新存入。该性能是“自适应的”,因为自旋持续时间由策略决策确定,基于以下因素:在相同监视器上的自旋尝试成功率和/或最新自选尝试失败率,以及最新锁的所有者状态。  要了解自适应自旋的更多信息,请参阅DaveDice的演示文稿:"JavaSE6中的同步"  在x86和amd64平台上支持大

6、页面堆  在x86和amd64平台上JavaSE6支持大内存页面堆。大内存页面堆(Largepageheap)帮助操作系统避免开销巨大的翻译后援缓存器(Translation-LookasideBuffer,TLB)错失,从而使内存密集型应用程序更好地运行(单个TLB就可以代表较大的内存范围)。  请注意大页面内存有时可以对系统性能产生负面影响。例如,当大量内存被一个应用程序固定,可能会产生常规内存不足,并引起其它应用程序中过度地分页,从而使整个系统运行缓慢。还请注意,对于一个已经启动很长时间的系统,过多的碎片使得系统不能保留大页面内存。当这种情况发生时,操作系统可能转而采用常规页面。

7、而且,可以通过设置-Xms==-Xmx、-XX:PermSize==-XX:MaxPermSize和-XX:InitialCodeCacheSize==-XX:ReserverCodeCacheSize最小化这种影响。  大页面的另一个可能的缺陷是,永久保存区域和代码缓存的默认页面大小可能因为使用大页面而更大;当页面大小比这些内存区域的默认页面大小大时这方面的问题就要特别值得注意。  在Solaris操作系统上默认启用对大页面的支持。在Wind

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。