QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

Python与数据库交互的最佳实践

技术冰糖葫芦

api 货币化 API 接口 pinduoduo API

Create 2024 分论坛:百度大模型安全解决方案护航开发者一起创造未来

百度安全

RocketMQ 存储机制浅析

字节跳动云原生计算

RocketMQ

BizDevOps全局建设思路:横向串联,纵向深化

嘉为蓝鲸

DevOps Dev Ops BizDevOps

TiDB 新特性解读 (6.0~6.6)

TiDB 社区干货传送门

管理与运维 版本测评 新版本/特性解读 6.x 实践 7.x 实践

TiDB 版本升级常见问题处理(v6.0 及以上版本)

TiDB 社区干货传送门

版本升级 故障排查/诊断

尝鲜 TiDB 企业管理器TEM 2.1.3 新版本

TiDB 社区干货传送门

监控

记一次某节点没有Leader的问题分析

TiDB 社区干货传送门

实践案例 故障排查/诊断 7.x 实践

TiDB学习认证之路:数据库界的“快乐大本营”

TiDB 社区干货传送门

社区活动 学习&认证&课程

AI从入门到入门之手写数字识别模型java方式Dense全连接神经网络实现

京东科技开发者

调试 WebSocket API 教程实践

Apifox

程序员 前端 后端 websocket WebSocket API

旅游电商的智能化升级:携程景点详情API引领新潮流

技术冰糖葫芦

API 接口 API 测试 pinduoduo API

PTCP认真学习始(不是错别字,啊喂

TiDB 社区干货传送门

社区活动 学习&认证&课程

云PBX的相关介绍

cts喜友科技

通信 通讯 云通讯

Kafka 线上性能调优

不在线第一只蜗牛

kafka 分布式

TiDB Vector抢先体验之用TiDB实现以图搜图

TiDB 社区干货传送门

数据库架构选型 新版本/特性解读 数据库前沿趋势

全球AI音乐会,第一次听见中国声音

脑极体

AI

一个游戏服务器多少钱?价格与配置的完美指南

一只扑棱蛾子

服务器

TiDB与MySQL在备份容灾体系的衡量对比

TiDB 社区干货传送门

管理与运维

我们开源啦!一键部署免费使用!Kubernetes上直接运行大数据平台!

智领云科技

开源 大数据平台 K8s 多集群管理

企业im即时通讯工具推荐,企业内部即时通讯软件工具怎么选?

BeeWorks

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道

汀丶人工智能

自然语言处理 text2sql NL2SQL

WorkPlus企业即时通讯国密加固-为企业信息安全保障

BeeWorks

HAS2024:华为云以系统性创新加速千行万业智能化升级

华为云开发者联盟

云计算 华为云 华为云开发者联盟 企业号2024年4月PK榜 HAS2024

写给职场新人|从迷茫到屡获殊荣的技术人成长之路

京东科技开发者

工程中实践的微服务设计模式

京东科技开发者

NL2SQL实践系列(2):2024最新模型实战效果(Chat2DB-GLM、书生·浦语2、InternLM2-SQL等)以及工业级案例教学

汀丶人工智能

text2sql NL2SQL

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