zoukankan      html  css  js  c++  java
  • JVM参数说明(转)

    做了这么多年java,自以为算是熟悉,其实还差得远,啥也别说了,还是踏踏实实地学吧。今天总结一下常用的JVM的启动参数。

    参数类别

    参数项

    说明

    标准参数(-,所有的JVM实现都必须实现这些参数的功能,而且向后兼容)

    -client

    以client模式启动jvm,这种方式启动速度快,但运行时性能和内存管理效率不高,适合客户端程序或者开发调试。

    -server

    以server模式启动jvm,与client情况恰好相反。适合生产环境。64位的jvm自动以server模式启动。

    -classpath

    -cp

    告诉jvm类搜索路径。如果指定了-classpath,则jvm就忽略CLASSPATH中指定的路径。各路径之间以分号隔开。如果-classpath和CLASSPATH都没有指定,则jvm从当前路径寻找class。

    Jvm搜索class的方式和顺序为:Bootstrap(jvm自带的)->Extension(JRE_HOME/lib/ext中的)->User(应用程序自己的)。如下语句会输出上述三种方式的路径信息:

    System.getProperty("sun.boot.class.path");

    System.getProperty("java.ext.dirs");

    System.getProperty("java.class.path");

    -Dproperty=value

    设置系统属性名/值对。如果value中有空格,则需要使用双引号。

    -jar

    指定以jar包的形式启动应用程序

    -javaagent:<jarpath>[=<options>]

    指定jvm启动时装入java语言设备代理。关于设备代理是jdk1.5新推出的概念。进一步的信息可以参考java.lang.instrument.Instrumentation接口

    -verbose[:class|gc|jni]

    分别输出:

    Jvm载入类的信息。诊断ClassNotFound错误时有用

    Jvm每次gc的信息。

    Native方法调用的情况,用于诊断jni调用。

    非标准参数(-X ,默认JVM实现此功能,但是不保证所有JVM都实行,而且不保证向后兼容)

    -Xbootclasspath:bootclasspath

    让jvm从指定的路径中加载bootclass,用来替换jdk的rt.jar。一般不会用到。

    -Xbootclasspath/a:path

    被指定的文件追加到默认的bootstrap路径中。

    -Xbootclasspath/p:path

    让jvm优先于默认的bootstrap去加载path中指定的class

    -Xincgc

    开启增量gc,一般也不会用到。

    -Xloggc:file

    输出gc日志,在没有专业的监控工具时,这个显得很有用。

    -Xmsn

    指定jvm堆的初始大小。默认是物理内存的1/64

    -Xmxn

    指定jvm堆的最大值。默认是物理内存的1/4

    -Xprof

    跟踪正在运行的程序,并将跟踪数据输出到标准输出,适合开发调试。

    -Xssn

    设置单个线程栈的大小。

    非稳定参数(-XX,此类参数各个JVM的实现会有不同,而且随时可能消失)

    -XX:+ScavengeBeforeFullGC

    新生代GC优先于Full GC执行

    -XX:+UseGCOverheadLimit

    在抛出OOM之前,jvm消耗在gc上的时间比例。

    -XX:-UseConcMarkSweepGC

    采用并发标记交换算法进行GC。并发是指过个线程同时gc,适合多核处理器的情况,并发一定满足并行,反之不成立。

    -XX:-UseParallelGC

    启用并行GC。并行是指有独立的线程进行gc,gc时不会打断应用线程。

    -XX:-UseSerialGC

    启用串行GC。新版本jdk不会这么干了。

    -XX:MaxNewSize=size

    Java堆中新生成对象占用堆的大小

    -XX:MaxPermSize=size

    Java堆中年老代占用堆的最大值

    -XX:HeadDumpPath=./java_pid<pid>.hprof

    指定导出堆信息时的路径或者文件名。

    -XX:-HeadDumpOnOutOfMemoryError

    当首次出现OOM时导出此时堆中相关信息。

    -XX:-PrintGC

    每次GC时打印相关信息

    -XX:-PrintGC Details

    每次GC时打印详细信息

    -XX:-PrintGCTimeStamps

    打印GC的时间戳

    -XX:-TranceClassLoading

    跟踪类的加载信息

    -XX:-TraceClassLoadingPreorder

    跟踪被引用到的所有类的加载信息

    -XX:-TranceClassResolution

    跟踪常量池

    -XX:-TraceClassUnloading

    跟踪类的卸载信息

    http://www.cnblogs.com/wenfeng762/archive/2011/08/14/2137810.html

  • 相关阅读:
    nginx-1.8.1的安装
    ElasticSearch 在3节点集群的启动
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files
    sqoop导入导出对mysql再带数据库test能跑通用户自己建立的数据库则不行
    LeetCode 501. Find Mode in Binary Search Tree (找到二叉搜索树的众数)
    LeetCode 437. Path Sum III (路径之和之三)
    LeetCode 404. Sum of Left Leaves (左子叶之和)
    LeetCode 257. Binary Tree Paths (二叉树路径)
    LeetCode Questions List (LeetCode 问题列表)- Java Solutions
    LeetCode 561. Array Partition I (数组分隔之一)
  • 原文地址:https://www.cnblogs.com/softidea/p/5597228.html
Copyright © 2011-2022 走看看