写点什么

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:254356

评论

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

Midway Serverless 发布 2.0,一体化让前端研发再次提效

Serverless Devs

Serverless 云原生 大前端

Superset 兼容ADB(AnalyticDB-MySQL)

data_y

Python MySQL Apache Superset

什么是VXLAN?为什么需要VXLAN?

华为云开发者联盟

网络 虚拟化 VLAN VXLAN 报文

我用一个小小的开放设计题,干掉了40%的面试候选人

架构精进之路

Web 安全 软件设计 3月日更

马特量化交易机器人系统开发网格策略

薇電13242772558

PostgreSQL高校数据库课程改革系列活动

PostgreSQLChina

数据库 postgresql 开源 软件 开源社区

《她说》——我们自出版的第一本书

张凯峰

mysql 四种隔离级别

Sakura

28天写作 3月日更

对象存储与HashData多云战略

酷克数据HashData

中国石油数字化转型提速 HashData助力梦想云建设

酷克数据HashData

JVM笔记 -- JVM经历了什么?

秦怀杂货店

Java JVM

百度文心多项任务分数刷新GLUE榜单,NLP界的“MVP”再次夺冠

百度大脑

自然语言处理 百度 文心 ERNIE

百度×TCL丨鸿鹄语音芯片首次在家电行业量产!

百度大脑

百度 语音识别 百度大脑 智能家居 百度智能云

阿里P8亲自教你!2021Android大厂面试知识分享,实战篇

欢喜学安卓

android 程序员 面试 移动开发

HashData与HDFS的高效数据交换

酷克数据HashData

有源晶振和无源晶振的区别

不脱发的程序猿

28天写作 电路设计 3月日更 晶振 元器件

带你全面认识CMMI V2.0(一)

渠成CMMI

项目管理 CMMI

助我拿到37KOffer,这份阿里巴巴890页Redis笔记可谓功不可没

Java架构追梦

Java redis 阿里巴巴 架构 面试

阿里P8手把手教你!万字Android技术类校招面试题汇总,附赠课程+题库

欢喜学安卓

android 程序员 面试 移动开发

有道 Kubernetes 容器API监控系统设计和实践

有道技术团队

Kubernetes 容器 分布式

火爆!GitHub 标星 144k 的前后端学习路线

沉默王二

学习 后端

Python 中级知识之装饰器,滚雪球学 Python

梦想橡皮擦

28天写作 3月日更

全国大学生智能汽车竞赛-百度线下赛题发布!封狼居胥,等你来战!

百度大脑

人工智能 百度 比赛 飞桨 AI Studio

makefile:带你了解一种常用于GNU gcc编译的工具语言

华为云开发者联盟

编译器 LiteOS makefile 语言 GNU

Weblogic11g安装部署-winserver篇

xiezhr

中间件 Windows Server 3月日更 weblogic

1500道算法面试题:Github上标星86.7K!直接火遍全网

比伯

Java 编程 程序员 架构 面试

江苏交通控股打造IT架构云转型下的智慧交通

酷克数据HashData

使用 Flink 前需要知道的 10 个『陷阱』

Apache Flink

flink

一文搞懂步进电机特性、原理及驱动器设计

不脱发的程序猿

硬件产品 28天写作 3月日更 步进电机 驱动电机

首款微控制器级树莓派 Pico,超廉价只需4美元

不脱发的程序猿

树莓派 28天写作 3月日更 树莓派 Pico 微处理器

【LeetCode】 基本计算器 II Java题解

Albert

算法 LeetCode 28天写作 3月日更

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