免费下载案例集|20+数字化领先企业人才培养实践经验 了解详情
写点什么

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:414008
用户头像

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

关注

评论

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

微信小程序图片拖拽排序探索

云小梦

CSS 微信小程序 图片拖动 movable-area

要把微博、贴吧变成即时聊天,总共分几步?

融云 RongCloud

“元宇宙”时代,离我们还有多远?

澳鹏Appen

人工智能 大数据 AR vr 元宇宙

MySQL数据备份,恢复和验证

wong

MySQL mysqldump

恒源云(GPUSHARE)_超越预训练 NLP 的模型来喽

恒源云

自然语言处理 深度学习 算法

AWS S3 对象存储攻防

火线安全

云原生 云安全

企业深入使用微服务后会面临哪些问题?云原生全链路灰度给了新思路

阿里巴巴云原生

阿里云 云原生 灰度 云原生微服务 链路

一周信创舆情观察(2.21~2.27)

统小信uos

【C语言】一篇速通操作符

謓泽

C语言 操作符 3月月更

Camtasia Studio2022激活码序列号

茶色酒

Camtasia Studio2022

如何搭建FAQ文档?只需四步

小炮

企业管理工具

《隐私计算》重磅发布,全面、系统论述数据要素安全流通价值

博文视点Broadview

企业培训赛道大火,谁能真正解企业人才培训之急?

ToB行业头条

分享几个你可能不知道的交互式Git 命令

华为云开发者联盟

git 交互式暂存 交互式 暂存

pip手动升级

阿呆

Python pip

360携手HarmonyOS打造独特的“天气大师”

HarmonyOS开发者

HarmonyOS 应用开发

小程序已成为超级APP必选项,逐鹿私域“留量”

Speedoooo

小程序 APP开发 软件开发、 轻量应用 小程序管理平台

在线HTML转JSX工具

入门小站

工具

译文 | 一文看懂技术债

LigaAI

场景应用 技术债务 非功能性需求

混合云管平台排名您知道吗?看这里!

行云管家

混合云 云管

2022年数据库审计厂家就选行云管家!功能强大!

行云管家

数据库 网络安全 数据库审计

《重构 JavaScript》读后感和部分摘录

道道里

前端 测试 重构

使用 Recast.AI 创建具有人工智能的聊天机器人

汪子熙

人工智能 机器学习 聊天机器人 CRM 3月月更

网络安全kali渗透学习 web渗透入门 使用msf扫描靶机上mysql服务的空密码

学神来啦

网络安全 kali kali Linux 运维‘

从Nacos到完全自研|得物的注册中心演进之路

得物技术

架构 raft 注册中心 实例 兼容性测试

Tuxera2022mac读写硬盘U盘工具

茶色酒

Tuxera2022

刚刚,我们收到了北京冬奥组委的感谢信

阿里巴巴云原生

阿里云 云原生 冬奥会 合作

BabaSSL 发布 8.3.0|实现相应隐私计算的需求

SOFAStack

开源 密码学 隐私计算 国密 BABASSL

2022年的SaaS行业,钱往哪里去?

ToB行业头条

Linux之route命令

入门小站

Linux

实践GoF的23的设计模式:SOLID原则(下)

华为云开发者联盟

设计模式 GoF 依赖倒置原则 接口隔离原则 SOLID原则

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