Java虚拟机参数及命令

  • Java -verbose:gc
    引用自Java -verbose:gc 命令

    参数-verbose:gc 表示输出虚拟机中GC的详细情况.
    使用后输出如下:
    [Full GC 168K->97K(1984K), 0.0253873 secs]
    解读如下:
      箭头前后的数据168K和97K分别表示垃圾收集GC前后所有存活对象使用的内存容量,说明有168K-97K=71K的对象容量被回收,括号内的数据1984K为堆内存的总容量,收集所需要的时间是0.0253873秒(这个时间在每次执行的时候会有所不同)
    Note:GC会暂用CPU时间片,有可能造成应用程序在某个时刻极短的停顿.


  • -Xss
    引用自JVM调优-java虚拟机内存模型及参数设置

    设置栈的大小,栈的大小直接决定函数调用的可达深度。
    设置不同的-Xss大小,运行出的深度是不一样的。
    虚拟机栈运行时使用一种叫做栈帧的数据结构保存上下文数据。栈帧存放了方法的局部变量表、>操作数栈、动态链接方法和返回地址信息,这就说明方法中参数不同使用的栈空间是不同的。

    • 测试栈深代码如下:
public class testStack {

    static int count=0;
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    try {
        recursion();
    } catch (Throwable e) {
        // TODO: handle exception
        System.out.println("栈的深度是:"+count);
        e.printStackTrace();
    }
    }

    public static void recursion()
    {
        count++;
        recursion();
    }

}
  • -Xms:设置java应用程序启动时的初始堆大小
  • -Xmx:设置java应用程序能获得的最大堆大小
  • -Xss:设置线程栈的大小
  • -XX:MinHeapFreeRatio:设置堆空间的最小空间比例。当堆空间的空闲内存小于这个数值时,jvm便会扩展堆空间。
  • -XX:MaxHeapFreeRatio:设置堆空间的最大空间比例。当堆空间的空闲内存大于这个数值时,jvm便会缩小堆空间。
  • XX:NewSize : 设置新生代的大小
  • XX:NewRatio:设置老年代与新生代的比例,即老年代除以新生代大小
  • XX:SurviorRatio:新生代中eden区与survivior 区的比例
  • -XX:PermSize:设置永久区的大小
  • -XX:TargetSurvivorRatio:设置survivior 的使用率。当达到这个空间使用率时,会将对象送入老年代。

引用自深入JVM-常用Java虚拟机参数

  • -XX:+PrintGC与-XX:+PrintGCDetails

    最简单的一个GC参数是-XX:+PrintGC,使用这个参数启动Java虚拟机后,只要遇到GC,就会打印日志。
    如果需要更加详细的信息,则可以使用-XX:+PrintGCDetails参数。

  • -XX:PermSize,-XX:MaxPermSize

方法区主要存放类的元信息。

在JDK1.6和JDK 1.7等版本中,可以使用-XX:PermSize和-XX:MaxPermSize配置永久区大小。其中-XX:PermSize表示初始的永久区大小,-XX:MaxPermSize表示最大永久区。

在JDK 1.8中,永久区被彻底移除,使用了新的元数据区存放类的元数据。默认情况下,元数据区只受系统可用内存的限制,但依然可以使用参数-XX:MaxMetaspaceSize指定元数据区的最大>可用值。

  • -XX:MaxDirectMemorySize

最大可以直接内存可以使用参数-XX:MaxDirectMemorySize设置,如不设置,默认值为最大dui堆空间,即-Xmx。当直接内存使用量达到-XX:MaxDirectMemorySize时,就会触发垃圾回收,
如果垃圾回收不能有效释放足够空间,直接内存溢出依然会引起系统的OOM。

  • -XX:+HeapDumpOnOutOfMemoryError

Java虚拟机提供了参数-XX:+HeapDumpOnOutOfMemoryError,使用该参数,可以在内存溢出时导出当前的内存堆转储快照以便事后分析。和他配合使用的还有-XX:HeapDumpPath,可以指定导出堆的存放路径。

  • -version

目前Java虚拟机支持Client和Server两种运行模式。默认情况下,虚拟机会根据当前计算机系统环境自动选择运行模式。使用-version参数可以查看当前的模式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值