写点什么

Java 7 Update 1 的性能和稳定性

  • 2011-12-15
  • 本文字数:1106 字

    阅读完需:约 4 分钟

Oracle 于 10 月 18 日发布了 Java 7 Update 1 ,给 Java 7 带来了迫切需要增强的稳定性,并且修复了我们以前报道过的HotSpot 编译器的性能优化问题,这个问题偶尔会导致错误结果甚至导致 SIGSEV 崩溃。JDK 6 Update 29 在使用不推荐用于生产服务器的参数 XX:+AggressiveOpts 或者 -XX:+OptimizeStringConcat 时,也存在相同的问题,这在此次更新中也得到了修复。

Java HotSpot 虚拟机性能增强文档中,Oracle 描述了其他一些与性能相关的特性。这份简短的文档只包含一项改进:-XX:+TieredCompilation。

分层编译在早先编译器的混合模式行为上增加了额外的一步。服务器会先对 JVM 分级,然后 Java 7 才会在解释模式下运行代码。然后代码只会在“热”的时候才被编译和优化,并被 HotSpot VM 标记,比如说有较高的执行次数。解释模式无论如何都比运行编译后的代码慢很多。-XX:+TieredCompilation 让虚拟机可以在已经运行编译后代码的同时,收集用于优化的统计信息。

尽管这项改变可能会减少高动态性系统的预热时间,其中节点会不断地与服务器连接,但是它带来的改进并不十分明显,就像桌面或者 applet 程序的启动没那么重要一样。

以下列出的针对 JVM 7 的改进对于 Java 6 都已经生效:

  • _Compressed Oops_ 自 Java 6 Update 14 有效,自 Update 23 成为默认设置(仅 64 位)
  • _Escape Analysis_ 自 Java 6 Update 14 有效,自 Update 23 成为默认设置
  • _ 非统一内存访问垃圾回收(Non Uniform Memory Access Garbage Collection)_ 自 Java 6 Update 2 有效

Compressed Oops 会为 64 位地址的 JVM 节省内存。JVM 将使用更简短的地址来引用与堆起点相关的对象,而不是从操作系统获得 64 位内存地址。由于减少了对象引用的内存使用,大多数程序都会受益于这项特性。

Escape Analysis 会查明新分配内存的对象是否要“脱离”当前方法的作用域。如果不是那样,那么该对象就可能会被分配在方法栈上,甚至同步可能会被移除(锁省略)。Heinz Kabutz 就该项优化的效果有一篇全面的文章

非统一内存访问垃圾回收是一项很有意义的改进,其实已经存在很长一段时间了。在现代内存架构中,有一些内存区比别的内存区的读写操作快。特别是在多核系统中,有些内存是专为个体CPU 保留的。感兴趣的读者可以从 Ulrich Drepper 优秀的文章中更多地了解这些内存区。JVM 将尝试在执行分配内存线程的核所使用的内存中分配对象的内存。该性能改进要求很高(特别是在 Solaris 机器上),但是 -XX:+UseNUMA 选项从来都不是默认的。

随着大部分改进在 Java 6 Updates 上可用(乃至成为默认项),Java 7 由于性能方面的原因依然没有吸引我们升级的亮点。

查看英文原文: State of Performance and Stability in Java 7 Update 1

2011-12-15 01:254896

评论

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

三思超100㎡ P0.9 8K LED大屏登陆广东佛山丨一屏控全局

电子信息发烧客

如何提高知识库系统管理水平?

秃头小帅oi

阿里云实时计算Flink的产品化思考与实践【下】

Apache Flink

cgroup、资源池、用户的关系..涉及到GaussDB(DWS)的资源设置

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GaussDB(DWS)

MySQL索引优化:选择合适的索引类型

gogo

华为云亮相KubeCon EU 2024,以持续开源创新开启智能时代

华为云开源

开源 云原生 华为云

云服务器几核几G配置应该怎么选择?

Finovy Cloud

服务器 云服务器

【4月20日 成都见】MySQL vs TiDB,看看如何利用分布式架构实现更简单,更可靠的应用实践!

TiDB 社区干货传送门

社区活动

亮数据,可视化数据采集强大利器

陈橘又青

数据采集

消息队列的七种经典应用场景

不在线第一只蜗牛

消息队列

TiDB 7.5.1 资源管控测试

TiDB 社区干货传送门

性能测评 7.x 实践

值得思考的两个测试面试题

老张

软件测试 面试经验

一文读懂,新质生产力!

天津汇柏科技有限公司

新质生产力

小米汽车 27 分钟大定破突破 5 万台;中国在全球率先商用 5.5G 丨 RTE 开发者日报 Vol.174

声网

tiup与prometheus迁移

TiDB 社区干货传送门

迁移 管理与运维

通过TiOperator恢复共享存储备份数据

TiDB 社区干货传送门

迁移 集群管理 管理与运维 安装 & 部署 备份 & 恢复

快讯!TiDB v8 发版!超硬核 v8 引擎!

TiDB 社区干货传送门

软件测试学习笔记丨基于Gitlab的持续集成机制

测试人

软件测试

TiDB 三中心"脑裂"场景探讨

TiDB 社区干货传送门

从银行资产规模看TiDB上线杭州银行核心到底意味着什么?

TiDB 社区干货传送门

数据库前沿趋势

深入浅出:易懂的 Windows 平台 cURL 命令使用教程

Liam

Java 程序员 后端 API curl

与鲸同行,智领未来!和鲸科技“人工智能+X”学科建设合作交流会(北京站)圆满结束!

ModelWhale

人工智能 大数据 数据科学 实验室 新型基础设施建设

如何专业、正确地使用LED租赁屏

Dylan

技术 音乐 视觉 LED LED显示屏

吴晓波频道:基于数据飞轮更懂会员需求 提升业务价值

极客天地

我和 TiDB 的故事:十年理财之路之 TiDB 如何让我收益达到30万的

TiDB 社区干货传送门

新版本/特性解读

用百度和神策做埋点为何pv差异很大?

ClkLog

数据分析 开源软件 用户画像 埋点分析系统

当法式美学遇上鸿蒙生态,Hi畅享70 Pro 5G演绎科技浪漫?

极客天地

Arbitrum 为什么能领跑以太坊 Layer 2?

Footprint Analytics

blockchain Layer 2

站群服务器优化技巧:提升网站速度与搜索引擎排名

一只扑棱蛾子

站群服务器

Java 7 Update 1的性能和稳定性_Java_Fabian Lange_InfoQ精选文章