“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

Java 7 Hotspot 循环 Bug 详解

  • 2011-08-04
  • 本文字数:767 字

    阅读完需:约 3 分钟

上周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

2011-08-04 02:413914
用户头像

发布了 135 篇内容, 共 58.4 次阅读, 收获喜欢 43 次。

关注

评论

发布
暂无评论
发现更多内容

全面提升鸡群产能!Newcher智慧养鸡场解决方案剖析

Rancher

一份秀出新天际的SpringCloudAlibaba笔记,把微服务玩的出神入化

Java 编程 程序员 架构 微服务

AI 事件驱动场景 Serverless 实践

阿里巴巴云原生

人工智能 Serverless 容器 云原生 消息中间件

【得物技术】算法入门一:算法的好坏?复杂度告诉你

得物技术

算法 时间复杂度 大前端 入门 复杂度

聪明人的训练(九)

Changing Lin

4月日更

【软件推荐】TOP级YouTube视频下载工具2021

科技猫

软件 分享 工具软件 视频 youtube

你可能不是真的懂let和const

前端树洞

JavaScript ecmascript 大前端 ES6 4月日更

Android音视频 - MediaCodec编解码音视频

LoveYFan

android 音视频 编解码

在业务高峰期拔掉服务器电源是一种怎样的体验?

冰河

分布式 微服务 数据恢复 MySQL 高可用 异常处理

一位五年Java开发经验程序员的拼多多/蚂蚁金服/百度面经分享!

Java架构之路

Java 程序员 架构 面试 编程语言

这里有一份2021年Java面试必备的《并发编程》学习资料,你要还是不要?

Java架构之路

Java 程序员 架构 面试 编程语言

游戏数据埋点

data_y

游戏 数据埋点 游戏数据分析 埋点定义

新的物联网技术应用有哪些

cdhqyj

互联网 物联网 通信 计算机

Android音视频 - EGL源码解析以及C++实现

LoveYFan

android 音视频 OpenGL ES

新华三“云屏”发布:云屏融合重塑工作体验,全力构建智“会”时代

DT极客

经典递归

山@支

三翼鸟的羽翼下,人诗意地栖居在智能生活里

脑极体

JavaScript小笔记

赫鲁小夫

4月日更

我的 2015-2018 —— 银行软开三年项目回顾

清秋

大前端 重构 鉴权 4月日更

一周信创舆情观察(3.29~4.4)

统小信uos

平面设计之PS(中)

空城机

PhotoShop ps 4月日更

CIAM的7个基本原则

龙归科技

安全性 用户 业务增长

一个DNS引发的“血案”

穿过生命散发芬芳

Wireshark 数据包分析 4月日更

嘿,朋友!和你讲讲这15年来我的成长吧

亚马逊云科技 (Amazon Web Services)

Fl Studio真的不如Cubase或者Logic Pro等电音软件专业吗?

奈奈的杂社

编曲 电音 电音制作 中国电音 编曲宿主

调整云计算资源大小时要避免的10个错误

浪潮云

云计算

深入浅出 LVS 负载均衡系列(一):NAT、FULLNAT 模型原理

UCloud技术

负载均衡

你真的懂反馈吗?

石云升

28天写作 职场经验 管理经验 4月日更

【LeetCode】寻找旋转排序数组中的最小值 IIJava题解

Albert

算法 LeetCode 4月日更

19张图带你梳理SpringCloud体系中的重要技术点!

Java架构师迁哥

Github限时开放!阿里内部强推的《微服务容器化参考指南》简直太牛了!

Java架构之路

Java 程序员 架构 面试 编程语言

Java 7 Hotspot循环Bug详解_Java_Alex Blewitt_InfoQ精选文章