写点什么

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

评论

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

金融科技创新者的困境

木风

金融科技 数字化转型 科技创新

定时任务报警通知解决方案详解

阿里巴巴云原生

阿里云 微服务 云原生 定时任务

自然语言处理--神经网络的复习

IT蜗壳-Tango

自然语言处理 nlp 9月月更

客随主便-Mysql主从同步是怎样的过程?

知识浅谈

redis主从 9月月更

云原生游戏第 2 讲:OpenKruiseGame 设计理念详解

阿里巴巴云原生

阿里云 容器 云原生 游戏 OpenKruiseGame

IDEA配置tomcat

楠羽

#开源

Java进阶(一)内存解析

No Silver Bullet

Java 9月月更 内存解析

私有化部署的企业IM:实现工作消息、文件的全面可控

BeeWorks

web前端培训入门难吗?

小谷哥

阿里云高性能计算负责人何万青:阿里云大计算加速HPC与AI融合

阿里云弹性计算

AI HPC 高性能计算 无影云电脑 计算巢

基于Vue3常用代码块

青柚1943

typescript Vue3 Element Plus Pinia sortablejs

架构师的十八般武艺:合规架构

agnostic

企业架构 合规

go语言逆向技术之---常量字符串解密

sofiya

超大模型工程化实践打磨,百度智能云发布云原生 AI 2.0 方案

百度Geek说

云原生 人工智能’ 企业号九月金秋榜

java培训程序员靠技术来延长自己的职业周期

小谷哥

MobTech SMSSDK iOS端快速集成指南

MobTech袤博科技

ios sdk

2022年中国证券行业智能投顾专题分析

易观分析

金融 证券

pe文件签名信息检测技术

sofiya

微服务网关Gateway实践总结

Java 架构

艺术收藏NFT系统开发:NFT功能搭建

开源直播系统源码

数字藏品 数字藏品系统软件开发 数字藏品开发

【案例回顾】春节一次较波折的MySQL调优

京东科技开发者

MySQL 数据库 索引 RDS 调优

大数据培训是否可以延迟工作周期

小谷哥

程序员“反内卷”大法——和无效加班说再见!

博文视点Broadview

【算法实践】一天路走到黑--手把手带你实现坚持不懈的线性查找

迷彩

Python 数据结构 算法实践 8月月更 线性查找

[教你做小游戏] 展示斗地主扑克牌,支持按出牌规则排序!支持按大小排序!

HullQin

CSS JavaScript html 前端 9月月更

如何在保护用户隐私的同时实现精准广告投放?

HarmonyOS SDK

广告sdk

从Core Dump中提取CUDA的报错信息

OneFlow

深度学习 报错 cuda

参加前端培训后再就业难吗?

小谷哥

移动办公平台如何在企业中发挥数字化优势?

BeeWorks

web前端培训程序员学习什么呢

小谷哥

新思科技解析Repo Jacking依赖仓库劫持如何影响供应链安全

InfoQ_434670063458

漏洞 新思科技 软件供应链 Repo Jacking

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