阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

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

关注

评论

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

AlDente Pro电池寿命延长工具功能介绍 及 AlDente Pro使用教程

Rose

Mac软件 AlDente Pro破解版 AlDente Pro电池寿命延长

Affinity Designer for Mac(强大的矢量图设计软件)v2.4.1中文免激活版

影影绰绰一往直前

Affinity Publisher for Mac(逆天排版神器)v2.4.1直装版

影影绰绰一往直前

一文详解常见医学自然语言理解任务和算法

阿里云天池

阿里云

ARM版Win10系统下载-Windows系统下载

Rose

win10 Windows系统 win 10镜像

哪里有Mac SVN管理工具 cornerstone 4破解版?

Rose

SVN管理工具 cornerstone 4 破解版 cornerstone 4许可

USBclean for Mac(USB专杀工具)v3.9激活版

影影绰绰一往直前

Acrobat Pro DC 2023中文直装版 PDF编辑软件

Rose

Acrobat Pro DC 2023下载 PDF编辑和管理

Autodesk AutoCAD 2022中文版安装破解教程 含cad2022序列号密钥

Rose

CAD绘图 AutoCAD2022序列号 autocad2022秘钥 autocad2022破解版 AutoCAD安装教程

Hides for Mac(隐藏程序Mac老板键)v5.9.3激活版

影影绰绰一往直前

国内如何用gpt4?如何升级chatgpt4.0保姆级教程

蓉蓉

openai ChatGPT GPT-4

淘宝商品评论API:连接消费者与商家的桥梁

tbapi

淘宝API接口 淘宝商品评论API接口 淘宝商品评价接口

实战篇-Docker 安装ELK(单节点)

派大星

运维监控 ELK Stack

有一个可以写到简历的项目,嘎嘎强!

冰河

分布式 微服务 高并发 聊天 IM即时通讯

STL算法大全

百度搜索:蓝易云

Linux 运维 云服务器 stl C+

Visual Studio 2022 内置 Git 异常

雄鹿 @

Visual Studio 2022

Affinity Photo for Mac 好用的图片编辑软件

影影绰绰一往直前

数据挖掘终篇!一文学习模型融合!从加权融合到stacking, boosting

阿里云天池

阿里云

Macs Fan Control Pro 如何控制风扇速度?Macs Fan Control Pro使用教程及安装包分享

Rose

Macs Fan Control Pro下载 Macs Fan Control Pro破解 Mac 电脑风扇速度 Macs Fan Control 教程

编写的Snort规则不报警怎么办?

百度搜索:蓝易云

云计算 Linux 运维 云服务器 Snort

php所有函数总结

百度搜索:蓝易云

php 云计算 Linux 运维 云服务器

Xliff Editor for Mac 编辑和管理XLIFF文件

Rose

Mac软件 Xliff Editor XLIFF文件

零基础入门数据挖掘系列之「特征工程」

阿里云天池

阿里云

Sync Folders Pro for Mac(文件夹数据同步工具)v4.7.0中文激活版

影影绰绰一往直前

Django数据库类库MySQLdb使用详解

百度搜索:蓝易云

django Linux 运维 云服务器 mysqldb

深入理解HTTP请求的五个要点

百度搜索:蓝易云

云计算 Linux 运维 HTTP 云服务器

EndNote 21(文献管理软件)适合那些行业使用 有什么功能

Rose

文献管理 EndNote 21下载 EndNote 21破解版

Invisible for Mac(文件隐藏工具)v2.9激活版

影影绰绰一往直前

Remote Desktop Manager for mac(远程桌面管理器)v2024.1.6.2中文激活版

影影绰绰一往直前

jprofiler安装使用教程 附jprofiler永久激活码 Mac/win

Rose

Java性能 JProfiler激活码 JProfiler 14下载

Xliff Editor for Mac(Mac平台XLIFF文件编辑工具)v2.9.16激活版

影影绰绰一往直前

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