快速业务通道

Java 6中的线程优化真的有效么?——第二部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
比较保守,根据不同条件(比如锁对象数据大小和其他OS特定的特性) 及早地关掉了它。

结论

当我刚开始这个实验,解释应用各种锁优化的Hotspot的有效性的时候,我估 计它将花费我几个小时的时间,最终这会丰富我的blog的内容。但是就像其他的 基准测试一样,对结果进行验证和解释的过程最终耗费了几周的时间。同样,我 也与很多专家进行合作,他们分别花费了大量时间检查结果,并发表他们的见解 。即使在这些工作完成以后,仍然很难说哪些优化起作用了,而哪些没有起作用 。尽管这篇文章引述了一组测试结果,但它们是特定我的硬件和系统的。大家可 以考虑是否能在自己的系统上看到相同类型的测试结果。另外,我最初认为这不 过是个小规模基准测试,但是后来它逐渐既要满足我,也要满足所有审核代码的 人,而且去掉了Hotspot不必要的优化。总之,这个实验的复杂度远远地超出了我 的预期。

如果你需要在多核机器上运行多线程的应用程序,并且关心性能,那么很明显 ,你需要不断地更新所使用的JDK到最新版本。很多(但不是全部)前面的版本的 优化都可以在最新的版本中获得兼容。你必须保证所有的线程优化都是激活的。 在JDK 6.0中,它们默认是激活的。但是在JDK 5.0中,你需要在命令行中显式地 设置它们。如果你在多核机器上运行单线程的应用程序,就要禁用除第一个核以 外所有核的优化,这样会使应用程序运行得更快。

在更低级的层面上,单核系统上锁的开销远远低于双核处理器。不同核之间的 协调,比如存储关卡语义,通过关掉一个核运行的测试结果看,很明显会带来系 统开销。我们的确需要线程优化,以此降低这一开销。幸运的是,锁粗化和(尤 其是)偏向锁对于基准测试的性能确实有明显的影响。我也希望逸出分析与锁省 略一起更能够做到更好,产生更多的影响。这项技术会起作用,可只是在很少的 情况下。客观地说,逸出分析仍然还处于它的初级阶段,还需要大量的时间才能 变得成熟。

最后的结论是,最权威的基准测试是让你的应用程序运行在自己的系统上。当 你的多线程应用的性能没有符合你的期望的时候,这篇文章能够为你提供了一些 思考问题的启示。而这就是此文最大的价值所在。

Java 6中的线程优化真的有效么?——第二部分(6)

时间:2011-05-20 infoq.com Jeroen Borgers 译:韩锴

关于Jeroen Borgers

Jeroen Borger是Xebia 的资深咨询师。Xebia是一家国际IT咨询与项目组织公 司,专注于企业级Java和敏捷开发。Jeroen帮助他的客户攻克企业级Java系统的 性能问题,他同时还是Java性能调试课程的讲师。他在从1996年开始就可以在不 同的Java项目中工作,担任过开发者、架构师、团队lead、质量负责人、顾问、 审核员、性能测试和调试员。他从2005年开始专注于性能问题。

鸣谢

没有其他人的鼎力相助,是不会有这篇文章的。特别感谢下面的朋友:

Dr. Cliff Click,原Sun公司的Server VM主要架构师,现工作在Azul System ;他帮我分析,并提供了很多宝贵的资源。

Kirk Pepperdine,性能问题的权威,帮助我编辑文章。

David Dagastine,Sun JVM性能组的lead,他为我解释了很多问题,并把我引 领到正确的方向。

我的很多Xebia的同事帮我进行了基准测试。

清单1.

 public class LockTest {      private static final int MAX = 20000000; // 20 million      public static void main(String[] args) throws InterruptedException { // warm up the method cache for (int i = 0; i < MAX; i++) {              concatBuffer("Josh", "James", "Duke");              concatBuilder("Josh", "James", "Duke"); }  

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号