50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

茂名是几线城市?有正规等保测评机构吗?

行云管家

网络安全 等保测评 等级测评 茂名

OptaPlanner 开源项目

积木编程

软件测试 | 测试开发 | Vue3.0 如何写自定义指令

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

测试

软件测试 | 测试开发 | kafka 从入门到了解

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

测试

java多线程——CAS

StackOverflow

编程 计算机网络 9月月更

《近期BSN开发常见问题答疑(2022.9.23)》

BSN研习社

BSN 区块链、

如何保障物联网平台的安全性与健壮性

EMQ映云科技

物联网 IoT emqx SSL/TLS 9月月更

规划问题的概念

积木编程

面试官:请实现一个JavaScript深拷贝

loveX001

JavaScript

三次握手与四次挥的问题,怎么回答?

loveX001

JavaScript

三步“上链”,从此告别黑心假酒

旺链科技

区块链 产业区块链 企业号九月金秋榜 酒业

数据中台体系规划建设

穿过生命散发芬芳

数据中台 9月月更

OBCP实验全面升级|官方为你送上备考攻略+福利

OceanBase 数据库

软件测试 | 测试开发 | 分布式自增ID算法Snowflake简介

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

测试

银行使用堡垒机成功案例分享一二

行云管家

银行 堡垒机 IT运维 IT资产

KaiwuDB 正式加入中国信通院数据库应用创新实验室

KaiwuDB

开发者有话说|谢谢当年那个埋下对科技热爱的种子那个少年

宇宙之一粟

个人成长 人生故事 9月月更

105道Java面试题,认真思考对你面试很有价值

Geek_0c76c3

Java 数据库 开源 程序员 面试

Docker与Jib(maven插件版)实战

程序员欣宸

Docker 9月月更 Jib

计算机网络——回退N帧协议

StackOverflow

编程 计算机网络 9月月更

低代码实现探索(五十)后台复杂业务构建扩展

零道云-混合式低代码平台

阿里云云通信作为CPaaS全球代表服务商,上榜Gartner报告

阿里云CloudImagine

阿里云 云通信 通信云 Gartner

IPQ5018, 802.11ax,wifi 6e,QCN9074//IPQ8072A IPQ8072 IPQ8074 IPQ8074A 4x4/8x8 2.4G & 5G 802.11ax //Wallys

wallys-wifi6

IPQ8072 ipq5018 IPQ8074

系统集成行业如何进行降本增效

Onegun

小程序 小程序容器

软件测试 | 测试开发 | 如何提高站内SEO

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

测试

计算机网络——随机接入

StackOverflow

编程 计算机网络 9月月更

基于EMR的新一代数据湖存储加速技术详解

阿里云大数据AI技术

大数据 企业号九月金秋榜

不会还有程序员不知道跳槽季靠这1700道java面试题就能平淌大厂吧

Geek_0c76c3

Java 数据库 程序员 架构 面试

软件测试 | 测试开发 | 如何用 docker 搭建虚拟环境

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

测试

OptaPlanner是什么

积木编程

设备健康管理“悬丝诊脉”之【石化行业往复式压缩机】

PreMaint

设备健康管理 设备预测性维护 往复式压缩机

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