快速业务通道

Java理论和实践: 一个有缺陷的微基准的剖析 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
基准呢?首先,编写一个好的优化 JIT。跟那些写过其他好的优化 JIT 的人谈谈(这样的人不难找,因为好的优化 JIT 并不多!)。邀请他们会餐,与他们交流有关如何尽可能快地运行 Java 字节码的性能技巧的故事。阅读上百篇关于优化 Java 代码执行的文章,自己也写一些文章。然后您就会拥有编写一个好的度量某种东西的微基准所需的技术,例如同步、对象池或者虚方法调用的成本。

是不是开玩笑?

您可能会想,前面所说的用于编写好的微基准的秘诀过于保守,但编写一个良好的微基准的确需要知道大量有关动态编译、优化和 JVM 实现技术的知识。为了编写一个真正能够测试您所想要测试的东西的测试程序,您必须理解编译器会对这个测试程序做什么,动态编译后的代码的性能特征,以及生成的代码与通常的现实当中使用相同结构体的代码有何不同。没有理解到这个程度,就不能判断您的程序是否能度量您想要度量的东西。

那么您应该怎么做呢?

如果您真的想知道是同步更快还是锁机制更快(或者回答任何类似的微性能问题),那么应该怎么做呢?一种选择(对于大多数开发人员并不适合)是“信任专家”。在 ReentrantLock 类的开发当中,JSR 166 EG 成员在很多不同平台上运行成百上千个小时的性能测试,检查 JIT 生成的机器代码,并用心阅读结果。然后,他们修改代码,再重新测试。在开发和分析这些类的过程中,涉及到大量的专业知识以及对 JIT 和微处理器行为的深度理解,不幸的是,凭一个基准程序的结果就下结论仍然过早,虽然我们也想这样。另一种选择是,将注意力放在“微”基准上 —— 编写一些实际的程序,用两种方法编写代码,开发一种逼真的负载生成策略,并在逼真的负载条件下和逼真的部署配置中使用这两种方法来度量应用程序的性能。这样做工作量会很大,但惟有如此才能更接近您想要的答案。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号