Java HotSpot VM 性能引擎架构

概述

Java HotSpot™虚拟机实现Sun Microsystems公司的高性能虚拟机的Java平台, 平台的应用环境从头到如今,依然有不少的应用存在: 从信用卡到无线设备,桌面到大型机等小程序

Java HotSpot VM基于Java技术的跨平台支持和安全模型,具备可扩展性,质量和性能的新特性和功能。 除了新功能外,此版本还与之前的版本向上兼容设计模式

Java HotSpot VM支持企业应用程序的开发,部署和管理的全部方面,而且用于:安全

  • 集成开发环境(IDE),包括Sun Java Studio工具,NetBeans开源项目,IBM的Eclipse,IntelliJ IDEA,Oracle JDeveloper等
  • 应用服务器厂商,如Sun Java系统应用服务器,BEA系统公司的WebLogic软件,IBM的WebSphere软件,苹果电脑公司的软件的WebObjects等等

目前的话,IntelliJ IDEA工具仍是比较火的,一样知足需求的请求下,coder们也追求快感和美感服务器

 

Sun Microsystems公司也经过使用各类行业标准和内部开发的基准测试性能的改进, 这些改进适用于客户端和服务器端Java VM环境多线程

Java标准版平台包含了Java虚拟机的两个实现:架构

  • Java HotSpot Client VM,经过减小应用程序启动时间和内存占用,在客户端环境中运行应用程序时能够得到最佳性能
  • Java HotSpot Server VM,旨在最大限度地提升服务器环境中运行的应用程序的执行速度


Java HotSpot VM架构 概观

Java HotSpot虚拟机是Sun用于Java平台的VM。 它使用许多先进技术为Java应用程序提供最佳性能,包括最早进的内存模型,垃圾收集器和自适应优化器。 它以高级,面向对象的风格编写,并具备如下特色:工具

  • 统一对象模型性能

  • 解释,编译和本地帧都使用相同的堆栈学习

  • 基于本地线程的抢占式多线程测试

  • 高效的垃圾回收机制

  • 超快速线程同步

  • 动态的优化和快速的编译器优化

  • 在VM启动时生成的系统特定的运行时程序

  • 支持并行编译的编译器接口

  • 运行时分析只关注"热"方法的编译工做

JDK包括两种VM - 一种是客户端产品,另外一种是针对服务器应用程序调整的VM。 这两个解决方案共享Java HotSpot运行时环境代码库,但使用适合客户端和服务器独特性能特征的不一样编译器。 这些差别包括编译内联策略和堆默认值

JDK在发行版中包含这两个系统,所以咱们能够经过指定-client或-server来选择想要的系统

用了这么久的JDK,尴尬,才知道,另外发现大多数的系统层级或载体组件,都有着相同,或者说相似的架构设计模式

 

虽然服务器和客户端虚拟机相似,但服务器虚拟机已通过专门调整,以最大限度地提升峰值运行速度。 它旨在执行长时间运行的服务器应用程序,这些应用程序须要尽量快的运行速度,而不是快速启动时间或较小的运行时内存占用

客户端VM编译器用做经典VM和先前版本的JDK使用的实时(JIT)编译器的升级。 客户端VM为应用程序和小程序提供了改进的运行时性能。 Java HotSpot客户端VM通过专门调整,可缩短应用程序启动时间和内存占用,使其特别适合客户端环境。 一般,客户端系统更适合GUI

Client VM编译器不会尝试执行服务器VM中编译器执行的许多更复杂的优化,但做为交换,它须要更少的时间来分析和编译一段代码。 这意味着客户端VM能够更快地启动而且须要更小的内存占用

Server VM包含一个高级自适应编译器,它支持经过优化C++编译器执行的许多相同类型的优化,以及传统编译器没法完成的一些优化,例如跨虚拟方法调用的积极内联。 与静态编译器相比,这是一种竞争优点和性能优点。 自适应优化技术的方法很是灵活,一般甚至优于高级静态分析和编译技术

这两种解决方案都可提供极其可靠,安全且可维护的环境,以知足的需求

 

粗略的VM架构认识就到这里,继续学习 Memory Model--内存模型

----------------------------------------------------------------

相关文章
相关标签/搜索