10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

评论

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

YashanDB BIN函数

YashanDB

想考试PMP的同学看过来

Marvin

项目管理 pmp IT PMP Certification PMP考试

25亿专项激励金!百度联盟发布“智跃计划”,开放四大能力赋能开发者

极客天地

低代码困局:方法论迷途与破局之道

代码制造者

低代码

iVX如何拿捏中大型工程建筑行业砼管理系统

代码制造者

无代码开发 低代码开发中大型系统

大模型如何辅助软件测试与质量体系?

思码逸研发效能

软件测试 研发效能 软件质量 智能化测试 思码逸

YashanDB AVG函数

YashanDB

Easysearch VS Opensearch 数据写入与存储性能对比

极限实验室

easysearch OpenSearch

流媒体分享系列之广告归因方案

Marvin

广告 流媒体 归因 广告归因 广告归因技术

流媒体分享系列之广告归因

Marvin

广告 流媒体 广告归因 归因技术

去中心化云算力的12项特征,不只是算力分布式

PowerVerse

去中心化 算力 分布式,

“AI+财务”4月活动地图,诚邀您就近入场!

用友智能财务

财务 峰会 会计

Kairos 的野望:构建“智能体即服务”生态,让万物皆可 “Agent”

股市老人

表 vs 物化视图:核心区别与选型指南

镜舟科技

分析型数据库 StarRocks 物化视图 实时分析 MPP 架构

华为云生态大会2025前瞻:为伙伴们打通行业智能跃迁通路

Alter

单月飙涨 300%!揭秘MSKE三大核心优势

MSKE铭文

#区块链 比特币行情 MSKE铭文 比特币铭文

看一个有经验的程序员如何学习一门新语言

Marvin

flutter 编程 前端 跨平台 学习分享

2025 程序员薪资大洗牌:掌握这 3 个 AI 核心技术,薪资瞬间翻倍

飞算JavaAI开发助手

编程 AI 开发者

流媒体分享系列之用户画像

Marvin

广告 流媒体 用户画像 剧情

黑龙江三级等保-信息安全等级保护制度中的重要级别

黑龙江陆陆信息测评部

一文弄懂用Go实现MCP服务

王中阳Go

Go MCP

2025 年 AI 编程新风向:从智能辅助到自主开发的跨越

飞算JavaAI开发助手

编程 AI 代码

YashanDB ATAN2函数

YashanDB

看图学会Kubernetes

Marvin

Docker Kubernetes k8s 学习笔记 虚拟化技术

SvelteKit 最新中文文档教程(19)—— 最佳实践之身份认证

冴羽

前端 前端框架 React Svelte SvelteKit

YashanDB ASIN函数

YashanDB

为什么mac文件拖拽不了 mac文件拖不进硬盘里 macbookpro文件无法拖进移动硬盘

阿拉灯神丁

mac三指操作设置 NTFS 磁盘管理器 Tuxera NTFS2024 文件拖拽工具 Mac文件管理

为什么我需要AI助手辅助学习python

阿里巴巴云原生

Python

YashanDB ATAN函数

YashanDB

为什么我需要AI助手辅助学习python

阿里云云效

Python

昇腾大规模专家并行技术解码 —— All to All 通信优化

科技热闻

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