Java SE 6性能白皮书[Java编程]
本文“Java SE 6性能白皮书[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
1 简介
Java SE 6(Java Platform Standard Edition 6)的一个主要计划原则就是以性能缺陷为目标,通过当前最风行的一些 Java 基准测试以及与 Java 社区的精密合作来肯定对性能影响最大的加强关键范畴,从而提高性能和可伸缩性.
本指南将概述 Java Standard Edition 6 中新增功效和可伸缩性改良,同时供应各种行业尺度和内部开辟的基准测试后果,以便演示这些性能改良的影响.
2 新增功效和性能加强
Java SE 6 引入了一些新的功效和性能加强,为平台中的很多范畴都供应了性能改良.这些改良包含:同步性能优化、编译器性能优化、新的并行缩并垃圾汇集器(Parallel Compaction Collector)、工效更高的并发低停顿垃圾汇集器(Concurrent Low Pause Collector),以及利用程序的启动性能.
2.1 运行时性能改良
2.1.1 偏向锁
偏向锁(Biased Locking)是一个优化的类,它通过消除与 Java 语言同步原语相关的原子操作改良无竞争同步性能.这些优化依靠于属性,它们不但是大大都无竞争的监督器,并且在它们的生命期内最多被一个线程锁定.
对象通过监督器输入字节码或同步办法调用,“偏向”于第一个获得监督器的线程;随后与监督器相关的操作可以通过该线程履行而不需利用原子操作,从而得到更好的性能,分外在多处理器机械上,这种性能改良尤为明显.
由多线程而不是单线程对“偏向”对象的锁定尝试,将惹起相对较大的操作开销,由此偏向被撤消.消除原子操作的好处必须超越锁定撤消惩罚从而使该优化有利可图.
利用大量无竞争的同步将得到明显的速度晋升,而其他利用某些锁定情势的利用程序运行大概迟钝.
偏向锁在 Java SE 6 以及将来版本中将被默许启用.要禁用偏向锁,请向号令行增添 -XX:-UseBiasedLocking.
要理解关于偏向锁的更多具体信息,请参阅由 Kenneth Russell 和 David Detlefs 撰写的《ACM OOPSLA 2006》文章:“利用偏向锁和批量重新偏向(Bulk Rebiasing)消除与同步相关的原子操作”.
2.1.2 锁粗化
Java SE 6 有一些锁定情势.在这些情势下锁被释放,然后在一段代码内被重新得到,在此之间没有可察看的操作呈现.在那样的情形下,在 hotspot 中实施的锁粗化优化技术消除了加锁和解锁的操作(当一个锁被释放时,在解锁与下次加锁之间又没有意义的事情可干,那么可以重新得到该锁).通过扩大现存同步区域基本上削减了同步工作的总量.环绕一个循环履行此操作大概招致一个锁被长期持有,因此锁粗化技术只在非循环的掌握流上利用.
该功效默许利用.要禁用此功效,请向号令行增添下列选项:-XX:-EliminateLocks
以上是“Java SE 6性能白皮书[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |