SUN的JDK版本从1.3.1开始使用HotSpot虚拟机技术。
HotSpot是较新的Java虚拟机技术,用来代替JIT(Just in Time)技术,可以大大提高Java运行的性能。
Java原先是把源代码编译为字节码在虚拟机执行,这样执行速度较慢。而该技术将常用的部分代码编译为本地(原生,native)代码,这样显著提高了性能。用于服务器版和标准版的HotSpot有所不同。
其他的Java虚拟机也有类似的技术。
HotSpot JVM 参数可以分为标准参数(standard options)和非标准参数(non-standard options)。
标准参数相对稳定,在JDK未来的版本里不会有太大的改动。
非标准参数则有因升级JDK而改变的可能。
标准参数:
-client
使用Java HotSpot 客户端版VM。
-server
使用Java HotSpot 服务器版VM。如果是64位的JDK,默认只有server版,所以以上两个参数对64位版本JDK无效。
-agentlib: libname [=options]
加载本地代理函数库, e.g.
-agentlib:jdwp=help
-agentpath :pathname [=options]
使用给定的路径加载本地代理库。
-classpath classpath
-cp classpath
不用说了。
-Dproperty =value
设置一个系统属性。
-d32
-d64
要求程序在32位或64位下跑,未来这个参数可能有变。
-enableassertions [:"..." | : ]
-ea [:"..." | : ]
开启断言。
-disableassertions [:"..." | : ]
-da [:"..." | : ]
关闭断言。
-enablesystemassertions
- esa
启动所有系统类的断言。
-disablesystemassertions
-dsa
关闭所有系统类的断言。
-jar
这个也没什么说的。
-javaagent :jarpath [=options]
加载Java 程序语言代理
-verbose:class
输出每个加载的类详细信息。
-verbose:gc
输出GC的详细信息。
-verbose:jni
输出本地方法接口的调用信息。
-version
-help
-?
不用说了。
-X
显示可用的非标准参数
非标准参数:
-Xint
以解释模式运行。JVM不会使用HotSpot的新特性,不会将部分常用代码编译为本地代码,所有代码都以字节码的方式解释运行。你可以理解为使用JDK1.3.1以前的JIT方式运行程序。
-Xbatch
不使用后台编译。
-Xbootclasspath:bootclasspath
使用bootstrap classloader 加载指定路径的class或jar,这是种完全覆盖默认系统类加载的方案,慎用。
-Xbootclasspath/a:bootclasspath
将指定的classpath追加到默认的bootclasspath的后面加载
-Xbootclasspath/p:bootclasspath
将指定的classpath追加到默认的bootclasspath的前面加载
-Xcheck:jni
在调用JNI函数时做额外的检查。这个参数会降低JVM的执行性能。
-Xfuture
执行严格的class文件格式检查,不加这个参数,默认使用JDK1.1.* 版本的class格式检查方法。
-Xnoclassgc
禁用class垃圾收集。
-Xincgc
开启增量垃圾收集机制。默认为关闭。增量垃圾收集能减少因垃圾收集而引起的程序中断,它会在程序运行期间不定期地以并发的方式运行,在运行期间不会引起中断但是会减少分配给程序的cpu资源。
-Xloggc:file
GC详情日志。效果如-verbose:gc ,不过这个可以输出到一个文件。除了-verbose:gc包含的信息,还有显示发生的时间。 文件可以是远程的,但是考虑到网络延迟会引起JVM中断,一般建议使用本地文件,
-Xms
分配的堆空间初始值:
-Xms6291456
-Xms6144k
-Xms6m
-Xmx
分配的堆空间最大值:
-Xmx83886080
-Xmx81920k
-Xmx80m
-Xprof
在运行程序时给出分析数据。适用于开发环境,不适用于生产环境。
-Xrs
减少JVM的操作系统信号的使用量。
-Xss
线程栈内存。
非标准-XX参数
有三种-XX参数的形式:
Boolean 型的参数 开启如 -XX:+ 关闭如 -XX:-.
Numeric 型参数 -XX:=. 数字可以包括单位 'm' 或 'M' 代表MB, 'k' or 'K' 代表KB, 'g' or 'G' 代表 GB ,没有单位意味着bytes。
String 参数 -XX:=
以下是-XX参数列表,本来想都翻译过来,但是发现一些技术术语如果硬是翻译可能会导致词不达意,因此大部分描述都保持原文。
分享到:
相关推荐
jvm参数介绍,oracle HotSpot官方参数文档。
本文是基于最新的SUN官方文档JavaSE6HotspotVMOptions 编写的译文。 主要介绍JVM 中的非稳态选项及其使用说明。 为了让读者明白每个选项的含义,作者在原文基础上补充了大量的资料。希望这份文档,对正在 研究...
本节介绍与HotSpot Runtime系统的主要子系统相关的关键概念。涵盖以下主题: 命令行参数处理 VM生命周期 VM类加载 字节码验证器和格式检查器 类数据共享 解释器 Java异常处理 同步 线程...
资源概要:JVM基础知识;类加载子系统;运行时数据区;对象的创建流程与内存分配;...从广义上讲Java,Kotlin、Clojure、JRuby、Groovy等运行于Java虚拟机上的编程语言及其相关的程序都属于Java技术体系中的一员。
1.4.2 Sun HotSpot VM 1.4.3 Sun Mobile-Embedded VM Meta-Circular VM 1.4.4 BEA JRockit IBM J9 VM 1.4.5 Azul VM BEA Liquid VM 1.4.6 Apache Harmony Google Android Dalvik VM 1.4.7 Microsoft JVM及其他...
java查看sun包源码 主要内容包括 :blue_heart: :blue_heart: :blue_heart: :blue_heart: :blue_heart: ...HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode) java -Xint -version Java HotSp
JDK1.8.0_112所有vm选项,用于...基于Java 6(update 21oder 21之后)版本, HotSpot JVM 提供给了两个新的参数,在JVM启动后,在命令行中可以输出所有XX参数和值。 -XX:+PrintFlagsFinal and -XX:+PrintFlagsInitial
Kafka默认开启JVM压缩指针,但只是在64位的HotSpot VM受支持,如果安装了32位的HotSpot VM,需要修改/bin/kafka-run-class.sh文件 KAFKA_JVM_PERFORMANCE_OPTS="-server -XX:+UseCompressedOops -XX:+UseParNewGC...
虚拟机介绍该存储库用于保留有关Java虚拟机(JVM)的...该软件提供运行整个OS的平台程序VM(例如:JVM)为了运行单个程序,JVM运行字节码,字节码可以由多种高级编程语言(不仅限于Java)进行编译HotSpot VM拓扑
Java 虚拟机面试题全面解析,《深入理解Java虚拟机》干货版,自己总结,希望能够帮助大家,免费下载~什么是类加载机制? 虚拟机和物理机的区别是什么? 运行时栈帧结构 Java方法调用 什么是方法调用? Java的方法调用,...
部分代码需要在特定的虚拟机版本、参数下运行,在代码前均已“VM Args”的注释进行标注。 书中的勘误也会在本文中持续更新,读者可通过issues提交新的勘误,如对新版有任何建议,也欢迎以或任何其他您方便的形式...
HotSpot(TM)64位服务器VM混合模式的Java 1.7.0_60-b19 包装脚本:这些脚本按如下所述运行代码块。 这些文件应按顺序运行(或全部通过RunAllAnalyses一次运行) PreliminaryTasks.m-设置一些参数,配置MATLAB路径并...
-vmargs - 表示将后面的所有参数直接传递到所指示的 Java VM。 <br>-Xverify:none - 此开关关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装入类。此开关缩短了启动...
java.lang.IllegalStateException: Keyboard must be created before you can read events at org.lwjgl.input.Keyboard.next(Keyboard.java:475) at azd.o(SourceFile:1374) at azd.ad(SourceFile:753) at azd....