写点什么

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

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

关注

评论

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

智慧酒店多商户合伙人:微擎开源生态下的酒店行业资源整合平台

微擎应用市场

上新功能!通义灵码行间建议预测 NES 使用方法

阿里巴巴云原生

阿里云 通义灵码

NetTrace 工具介绍

天翼云开发者社区

网络

前端热更新:无声引擎驱动中国互联网数字化转型

xuyinyin

会员付费漫画小程序:微擎开源生态下的内容变现新范式

微擎应用市场

上新功能!通义灵码行间建议预测 NES 使用方法

阿里云云效

阿里云 通义灵码

全维度测试通过!DolphinScheduler 3.2.0单节点部署与验证实录

白鲸开源

大数据 开源 性能测试 Apache DolphinScheduler 工作流任务调度

多源多表写入、数据格式增强,SeaTunnel 2.3.11 重磅更新来了!

白鲸开源

大数据 开源 数据同步 Apache SeaTunnel 版本发布

社区答疑明星招募令 | 成为SeaTunnel社群“技术担当”,我们等你来!

白鲸开源

开源社区 数据集成 Apache SeaTunnel 开源活动

全球科技巨头云集,展现AI前沿成果|2025深圳人工智能展

AIOTE智博会

高交会 高新技术展 深圳高交会

高并发下如何防止商品超卖?

量贩潮汐·WholesaleTide

高并发

小白也能轻松上手:ToDesk、Parsec、AnyDesk、TeamViewer 哪款远程软件最适合新手?

小喵子

远程

25年河北等保测评机构名称以及地址一览表

行云管家

等保 等保测评

Apache Doris 2.1.10 版本正式发布

SelectDB

大数据 开源 实时数仓 Apaache Doris 数据湖分析

高德发布智能眼镜解决方案| 携手AR领军企业,引领智慧出行新未来

高德开放平台

AI AR loT 高德地图 AR眼镜

ToDesk优惠码是什么,如何使用?

小喵子

优惠券 远程控制 ToDesk todesk、

Muu 线下活动:微擎开源生态下的全流程活动管理与营销平台

微擎应用市场

人工智能AI在数字化转型有哪些应用?

优秀

人工智能 AI 数字化转型

Web3的成功离不开什么?

PowerVerse

去中心化 云算力 web3 #区块链

远控安全进阶之战:TeamViewer/ToDesk/向日葵设备安全策略对比

小喵子

安全 远程办公 远程控制 ToDesk

Java后台实现微信小程序不同人员生成不同小程序码并追踪扫码来源

电子尖叫食人鱼

Java 微信小程序

粒子枪仿真和Track Solver追踪求解_CST案例分析

思茂信息

cst cst操作 CST Studio Suite

DNS攻击类型有哪些?如何应对DNS攻击威胁?

防火墙后吃泡面

A路径 VS B路径:先攻新加坡还是直取美国?中国科技出海的生死选择题

白鲸开源

开源 DataOps 出海 商业化 白鲸开源

壹佰门店社区团购:微擎开源生态下的社区零售增长引擎

微擎应用市场

超实用!Dify调用Java的3种实现方式!

王磊

零风险操作!DolphinScheduler高可用架构下的无损扩缩容指南

白鲸开源

开源 运维 Apache DolphinScheduler 扩缩容 任务调度平台

一种更简单的方式运行 C# 代码,简化 C# 开发体验!

不在线第一只蜗牛

C#

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