InfoQ

InfoQ

新闻

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

Java 7 Hotspot循环Bug详解

作者 Alex Blewitt 译者 丁雪丰 发布于 2011年8月4日

领域
语言 & 开发
主题
JCP标准 ,
Java SE ,
Java ,
语言 ,
Websphere ,
编程 ,
IBM ,
应用服务器 ,
企业级敏捷 ,
Oracle ,
敏捷 ,
HotSpot

上周Java 7 GA发布后,新JIT默认开启的优化中发现了一个问题。虽然这个问题最早是在Lucene搜索索引器的一个用例中出现的,但是它也有可能普遍存在于其他代码之中。

这个Bug引来了不少杞人忧天的文章,例如《Don't use Java 7 for anything》,其中暗示所有循环都有问题。事实上,虽然存在一个有效的Bug(循环可能无法正确执行或者引起SIGSEGV崩溃),但是这个Bug从Java 6开始就有了,如果开启了-XX:+OptimizeStringConcat-XX:+AggressiveOpts优化就会发生这个问题。

这个问题实际只会发生在特定的循环(循环体可能会修改循环条件)中,该问题的补丁中对此做了说明。在以-Xint(解释模式)运行的情况下不会发生这个问题,但在-server模式下就会有问题,服务器端应用程序很有可能就会使用这种模式。

如果问题不算太严重,出于此Bug带来的公众压力,Java 7 Update 1中会包含该补丁。由于Java 7刚刚发布,目前还不会被用于生产环境,而且它也不是这方面发现的第一个问题(Oracle在后续版本中修复了这个问题)。与此同时,问题描述中指出可以通过 -XX:-UseLoopPredicate标志来关闭这个特定的优化。

在Lucene和Solr项目中最早发现该问题的Uwe Schindler详细记录了Bug背后的故事,包含后续的反应(以及过激反应)。他记录到Twitter上大家的反应和后续的文章将Bug的优先级提高了,它的补丁将被放在Java 7 Update 1中,而不是Java 7 Update 2。但是,他也说了,尽管高优先级Bug(会导致SIGSEGV)会在Java 7 Update 1中修复,但是还有两个其他Bug仍是中优先级。

正如Robert Muir分析中所说的,因为这些优化都是在循环最少10,000次后才被引入的,所以很多测试都覆盖不到。已经有了补丁,会纳入以后的Java 7更新中,禁用LoopPredicate优化也能让Java 7摆脱这些问题。

查看英文原文:Java7 Hotspot Loop Bug Details

译者 丁雪丰 是InfoQ中文站编辑,满江红翻译组核心成员,出版过《Spring攻略》、《JRuby实战》等多部译著。主要关注领域:企业级应用、海量数据计算、动态语言应用等。

寄予厚望 发表人 黄 海平 发表于
期望高了 发表人 simon wang 发表于
  1. 返回顶部

    寄予厚望

    发表人 黄 海平

    可能真的不是大家太敏感了,而是java这么久没有重大更新,人们寄予了太。。。。。。

  2. 返回顶部

    期望高了

    发表人 simon wang

    失望也大,抱着一颗平静的性5去看这个问题

深度内容

Hadoop in 360——专访360系统部总监唐会军

在前不久的Hadoop in China 2011大会上,360系统部总监唐会军接受了InfoQ的专访,谈到360公司内部对Hadoop的使用,并对Hadoop项目和HBase面临的挑战提出了自己的看法。以下是采访实录。

富交互应用前端架构

如何使用 HTML5 加速产品界面的迭代;如何使用 MVC 模式降低前端业务逻辑耦合度,来实现"前端业务逻辑和开发效率的提升"。

前端开发中的自动化构建系统

在前端开发工作中,受语言和架构所限,我们通常会开发类库或工具来解决一些常见的问题。但是这些工具往往不能很好地与系统集成,增加了工程师学习和使用的成本。针对这些问题,百度实现了一个完整的自动化构建系统。此次演讲将与大家分享这套自动化构建系统的思路和实践。

深入分析Volatile的实现原理

在Java多线程并发编程中,synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通过深入分析能帮助我们正确的使用Volatile变量。

大规模SNS中兴趣圈子的自动挖掘

随着国外的facebook、twitter以及国内的人人、新浪微博等SNS及内容分享平台的逐步流行,如何从上亿的海量用户中自动挖掘兴趣圈子成为了一个有趣也非常必要的工作。本文讲述了在SNS平台下,如何对海量数据自动进行兴趣圈子挖掘。

MongoDB在盛大大数据量项目中的应用

当你为MongoDB schema-free的特性欢欣鼓舞时,却苦于无人运维;当你看到网上MongoDB性能评测相当优越,却在应用中不尽人意;当你使用MongoDB顺风顺水,心里正在窃喜不已,却被一场事故把数据搞的一塌糊涂。希望本次的分享能够解决你的一些后顾之忧。
本次演讲视频录制于QCon杭州2011

飞信开放平台的资源分配与控制策略

飞信开放平台是一个内容合作型业务,核心是通过OPEN API开放汇聚内容服务的Feed,包括微博、SNS,视频,电商等等。在一个多合作伙伴并存的开放环境中,飞信开放平台采取了多样性的资源控制策略为合作伙伴提供可控范围的服务,并优化用户体验。
本次演讲视频录制于QCon杭州2011

移动宽带海量数据分析

随着3G/4G等宽带无线网络的大规模部署,全球用户对移动互联网的访问以及相关的业务流量已呈现迅猛增长趋势。从运营的角度看,采用高性能、可扩展的分布式平台,通过对移动宽带海量流量数据的深入建模分析,挖掘,获得相应知识以应对上述挑战的需求是非常迫切的。同时,该分析的结果还可以为运营商在网络资源合理分配,网络高效管理,资费套餐差异化定制,甚至是商业智能决策领域提供帮助。