- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JavaSE6性能白皮书.
Java SE 6 性能白皮书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 2.1.3 自适应自旋 自适应自旋是一项优化技术。在该优化技术中,两阶段自旋再阻塞(spin-then-block)策略被尝试竞争同步输入操作的多线程使用。该技术启用 多线程以避免对性能产生不合需要的影响,例如翻译后援缓存器 (Translation Lookaside Buffers,TLB)的上下文切换和重新存入。该性能是“自适应的”,因为自旋持续时间由策略决策确定,基于以下因素:在相同监视器上的自旋尝试成功 率和/ 或必威体育精装版自选尝试失败率,以及必威体育精装版锁的所有者状态。 要了解自适应自旋的更多信息,请参阅 Dave Dice 的演示文稿:Java SE 6 中的同步 在 x86 和 amd64 平台上支持大页面堆 在 x86 和 amd64 平台上 Java SE 6 支持大内存页面堆。大内存页面堆(Large page heap)帮助操作系统避免开销巨大的翻译后援缓存器(Translation-Lookaside Buffer,TLB)错失,从而使内存密集型应用程序更好地运行(单个 TLB 就可以代表较大的内存范围)。 请注意大页面内存有时可以对系统性能产生负面影响。例如,当大量内存被一个应用程序固定,可能会产生常规内存不足,并引起其它应用程序中过度地分页,从 而使整个系统运行缓慢。还请注意,对于一个已经启动很长时间的系统,过多的碎片使得系统不能保留大页面内存。当这种情况发生时,操作系统可能转而采用常规 页面。而且,可以通过设置 -Xms == -Xmx、 -XX:PermSize == -XX:MaxPermSize 和 -XX:InitialCodeCacheSize == -XX:ReserverCodeCacheSize 最小化
文档评论(0)