HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

Autobots应用探索:实践中的思考与发现

京东科技开发者

云灾备场景

天翼云开发者社区

公有云 容灾场景

S3基准测试工具 - Warp使用简介

天翼云开发者社区

测试 S3 开源云工具

etl 常用数据类型转换 元数据配置说明

weigeonlyyou

Go 大数据 物联网 ETL MySQL 8.0

为什么要构建小程序生态

Geek_2305a8

接入单元测试框架:原理与执行流程介绍

测吧(北京)科技有限公司

测试

代码审查完整指南来了!

敏捷开发

编程 软件开发 代码审查 代码管理

利用财务工具实现企业不同阶段的有效规划

智达方通

全面预算管理 预算管理 财务预算

rbd常用的配置参数

天翼云开发者社区

rbd 配置参数

基于快照的异步远程复制介绍

天翼云开发者社区

Java 前端 rbd

抖音商品详情API实战指南:轻松获取并利用商品数据

tbapi

抖音商品数据采集 抖音API 抖音数据采集 抖音商品详情接口

AI大模型深度对比:腾讯混元大模型 VS 百川大模型

幂简集成

AI API 大模型

Java/OC 语言知识讲解:反射与回调

测吧(北京)科技有限公司

测试

Web 应用框架环境安装指南

测吧(北京)科技有限公司

测试

欢迎来到 Mint Expedition:Web3 和 NFT 的新时代开始

NFT Research

blockchain NFT\

TaD+RAG-缓解大模型“幻觉”的组合新疗法

京东科技开发者

某新员工大量使用Lambda表达式,老员工喷是炫技

源字节1号

小程序 开源 前端 后端

K8S POD控制器:从基础到高级实战技巧

EquatorCoco

Kubernetes 容器 云原生

没有它,你的Scrum无法实现!

敏捷开发

项目管理 Scrum 敏捷开发

为什么从 Demo 测试开始上手

测吧(北京)科技有限公司

测试

官宣!玲珑项目升级,如意玲珑(Linyaps)全新启航!

nn-30

Linux 开源 操作系统 deepin deepin V23

什么是云抄表?

源字节1号

小程序 开源 后端‘’

C 语言中的 sscanf 详解

EquatorCoco

MySQL 数据库 C语言

第三季度加密市场动荡:市场缺乏炒作题材,波动加剧

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

在 Xcode 中运行和调试单元测试:使用 Debug 和日志

测吧(北京)科技有限公司

测试

从校招新星到前端技术专家的成长之路

京东科技开发者

deepin Meetup 上海站回顾,揭秘如意玲珑(Linyaps)升级“内幕” | 附 PPT下载

nn-30

Linux 开源 操作系统 deepin deepin V23

京东按图搜索商品新视角:jd.item_search_img API返回值解读

技术冰糖葫芦

API 安全 API 文档 API 开发 API 协议

天润融通用小改进,盘活大资产

天润融通

人工智能 天润融通

Python循环控制

不在线第一只蜗牛

Python

Objective-C 语言基础知识:编写测试代码

测吧(北京)科技有限公司

测试

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