java

导航

Java虚拟机(JVM)参数配置说明

来源 :中华考试网 2020-11-26

  在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。

  JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最 佳新能。

  另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“OutOfMemory”类型的错误。呵呵,这其中很可能就是JVM参数配置不当或者就没有配置没意识到配置引起的。

  为了说明这些参数,还需要说说JDK中的命令行工具一些知识做铺垫。

  首先看如何获取这些命令配置信息说明:

  假设你是windows平台,你安装了J2SDK,那么现在你从cmd控制台窗口进入J2SDK安装目录下的bin目录,然后运行java命令,出现如下结果,这些就是包括java.exe工具的和JVM的所有命令都在里面。

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

  D:\j2sdk15\bin>java

  Usage: java [-options] class [args...]

  (to execute a class)

  or java [-options] -jar jarfile [args...]

  (to execute a jar file)

  where options include:

  -client to select the "client" VM

  -server to select the "server" VM

  填写下面表单即可预约申请免费试听java课程!害怕学不会?助教陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

  -hotspot is a synonym for the "client" VM [deprecated]

  The default VM is client.

  -cp

  -classpath

  A ; separated list of directories, JAR archives,

  and ZIP archives to search for class files.

  -D=

  set a system property

  -verbose[:class|gc|jni]

  enable verbose output

  -version print product version and exit

  -version:

  require the specified version to run

  -showversion print product version and continue

  -jre-restrict-search | -jre-no-restrict-search

  include/exclude user private JREs in the version search

  -? -help print this help message

  -X print help on non-standard options

  -ea[:...|:]

  -enableassertions[:...|:]

  enable assertions

  -da[:...|:]

  -disableassertions[:...|:]

  disable assertions

  -esa | -enablesystemassertions

  enable system assertions

  -dsa | -disablesystemassertions

  disable system assertions

  -agentlib:[=]

  load native agent library , e.g. -agentlib:hprof

  see also, -agentlib:jdwp=help and -agentlib:hprof=help

  -agentpath:[=]

  load native agent library by full pathname

  -javaagent:[=]

  load Java programming language agent, see java.lang.instrument

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

  在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。

  其次,用java -X 命令查看JVM的配置说明:

  运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)

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

  D:\j2sdk15\bin>java -X

  -Xmixed mixed mode execution (default)

  -Xint interpreted mode execution only

  -Xbootclasspath:

  set search path for bootstrap classes and resources

  -Xbootclasspath/a:

  append to end of bootstrap class path

  -Xbootclasspath/p:

  prepend in front of bootstrap class path

  -Xnoclassgc disable class garbage collection

  -Xincgc enable incremental garbage collection

  -Xloggc: log GC status to a file with time stamps

  -Xbatch disable background compilation

  -Xms set initial Java heap size

  -Xmx set maximum Java heap size

  -Xss set java thread stack size

  -Xprof output cpu profiling data

  -Xfuture enable strictest checks, anticipating future default

  -Xrs reduce use of OS signals by Java/VM (see documentation)

  -Xcheck:jni perform additional checks for JNI functions

  -Xshare:off do not attempt to use shared class data

  -Xshare:auto use shared class data if possible (default)

  -Xshare:on require using shared class data, otherwise fail.

  The -X options are non-standard and subject to change without notice.

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

  JVM配置参数中文说明:

  1、-Xmixed mixed mode execution (default)

  混合模式执行

  2、-Xint interpreted mode execution only

  解释模式执行

  3、-Xbootclasspath:

  set search path for bootstrap classes and resources

  设置zip/jar资源或者类(.class文件)存放目录路径

  3、-Xbootclasspath/a:

  append to end of bootstrap class path

  追加zip/jar资源或者类(.class文件)存放目录路径

  4、-Xbootclasspath/p:

  prepend in front of bootstrap class path

  预先加载zip/jar资源或者类(.class文件)存放目录路径

  5、-Xnoclassgc disable class garbage collection

  关闭类垃圾回收功能

  6、-Xincgc enable incremental garbage collection

  开启类的垃圾回收功能

  7、-Xloggc: log GC status to a file with time stamps

  记录垃圾回日志到一个文件。

  8、-Xbatch disable background compilation

  关闭后台编译

  9、-Xms set initial Java heap size

  设置JVM初始化堆内存大小

  10、-Xmx set maximum Java heap size

  设置JVM最大的堆内存大小

  11、-Xss set java thread stack size

  设置JVM栈内存大小

  12、-Xprof output cpu profiling data

  输入CPU概要表数据

  13、-Xfuture enable strictest checks, anticipating future default

  执行严格的代码检查,预测可能出现的情况

  14、-Xrs reduce use of OS signals by Java/VM (see documentation)

  通过JVM还原操作系统信号

  15、-Xcheck:jni perform additional checks for JNI functions

  对JNI函数执行检查

  16、-Xshare:off do not attempt to use shared class data

  尽可能不去使用共享类的数据

  17、-Xshare:auto use shared class data if possible (default)

  尽可能的使用共享类的数据

  18、-Xshare:on require using shared class data, otherwise fail.

  尽可能的使用共享类的数据,否则运行失败

  The -X options are non-standard and subject to change without notice.

分享到

您可能感兴趣的文章