码迷,mamicode.com
首页 > 其他好文 > 详细

HotSpot VM运行时

时间:2015-10-31 16:56:17      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

HotSpot VM运行时系统为HotSpot JIT编译器和垃圾收集器提供服务和通用API,同时还为VM提供启动线程管理JNI(Java本地接口)等基本功能。HotSpot VM运行时环境担当许多职责,具体如下:

1、命令行选项

  通过命令行选项来配置HotSpot VM,相当于HotSpot VM的配置文件,主要包括选择哪个JIT编译器、何种垃圾收集器、Java Heap的大小等。命令行选项主要有3类:

1.1、标准选项(Standard Option)

  标准选项是Java Virtual machine Specification要求所有Java虚拟机都实现的选项,它们在发行版之间保持稳定,但也可能在后续的发行版中被废除。

1.2、非标准选项(Nonstandard Option)

  非标准选项(以-X为前缀)不保证、也不强制所有JVM实现都必须支持,它可能未经通知就在Java SDK发行版之间发生更改。

1.3、非稳定选项(Developer Option)

  非稳定选项通常是为了特定需要而对JVM的运行进行校正,并且可能需要有系统配置参数的访问权限。与非标准选项一样,非稳定选项也可能不经通知就在发行版之间发生变动。

2、VM生命周期

  HotSpot VM运行时系统负责启动和停止HotSpot VM。启动HotSpot VM的组件式启动器。HotSpot VM有若干个启动器。Unix/Linux上最常用的是java,Windows上是java和javaw。也可以通过JNT接口(JNI_CreateJavaVM)启动内嵌的JVM,另外还有一个网络启动器Javaws(Java Web Start)。

  启动器启动HotSpot VM时会执行一系列操作。步骤概述如下:

  (1)解析命令行选项

  (2)设置堆的大小和JIT编译器

    如果命令行没有明确设置堆的大小和JIT编译器,启动器则通过自动优化进行设置。

  (3)设定环境变量如:LD_LIBRARY_PATH和CLASSPATH

  (4)如果命令行有-jar选项,启动器则从指定JAR的manifest中查找Main-Class,否则从命令行读取Main-Class

  (5)使用标准Java本地接口(Java Native Interface,JNI)方法JNI_CreateJavaVM在新创建的线程中创建HotSpot VM

  (6)一旦创建并初始化号HotSpot VM,就会加载Java Main-Class,启动器也会从Java Main-Class中取得Java main方法的参数

  (7)HotSpot VM通过JNI方法CallStartVoidMethod调用Java main方法,并将命令行选项传给它

HotSpot VM运行时

标签:

原文地址:http://www.cnblogs.com/pinxiong/p/4925612.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!