zoukankan      html  css  js  c++  java
  • JVM运行参数

    一、三种参数类型

       1、标准参数:比较稳定,以后版本会保留

          -help

          -version

       2、-X参数(非标准参数)

          -Xint

          -Xcomp

       3、-XX参数(非标准参数,使用率较高)

          -XX:newSize

          -XX:+UseSerialGC

    二、标准参数

      一般都是很稳定的,在未来jvm版本中不会改变,可以使用java -help检索出所有的标准参数。

    三、-X参数

      非标准选项,如有更改,恕不另行通知。

      使用java -X检索出-X的参数。

       -Xint,-Xcomp,-Xmixed

        -Xint会强制JVM执行所有的字节码,会降低运行速度,通常低10倍或更多。

        -Xcomp与-Xint相反,会把所有的字节码编译成本地代码。

        -Xmixed是混合模式,是JVM的默认模式,推荐。

    四、-XX参数

      主要用于JVM的调优和debug操作。有两种,boolean类型和非boolean类型。

       boolean类型

        格式:-XX:[+-]<name> 表示启用或禁用<name>属性。

        如:-XX:+DisableExplicitGC 表示禁止用手动调用gc操作,也就是System.gc()无效。

       非boolean类型

        格式:-XX:<name>=<value> 表示<name>属性的值为<value>。

        如:-XX:NewRatio=1表示新生代和老年代的比值。

       -Xms 与 -Xmx参数

        -Xms512m:等价于-XX:InitialHeapSize=512m,设置初始堆内存为512M。

        -Xmx2048m:等价于-XX:MaxHeapSize=2048m,设置最大堆内存为2048M。

     五、查看jvm的运行参数

      1、运行java命令时打印参数

        添加参数-XX:+PrintFlagsFinal。

       2、查看正在运行的jvm参数 

        查看所有java进程:jps -l

        查看某进程的jvm参数:jinfo -flags ${pid}  /  jinfo -flag <参数名> ${pid}

    六、jvm的内存模型

      1、jdk1.7的堆内存模型

         Young年轻代

         Tenured老年代

         Perm永久代

       2、jdk1.8的堆内存模型

        

           Young年轻代

           Tenured老年代

           元空间(占用系统内存)

        3、查看堆内存使用情况

          jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。

            jstat [-命令选项] [进程id] [间隔时间/毫秒] [查询次数]

            例1查看class加载统计

              C:Userslenovo>jstat -class 11976
              Loaded   Bytes      Unloaded   Bytes   Time
              4730       9436.1    0                 0.0       10.54

            说明:

              loaded:加载class的数量

              bytes:所占用空间大小

              unloaded:未加载占用空间

              time:时间

            例2查看编译统计        

              C:Userslenovo>jstat -compiler 11976
              Compiled  Failed  Invalid  Time      FailedType    FailedMethod
              2970           0            0       13.28    0

            说明:

              compiled:编译数量

              failed:失败数量

              invalid:不可用数量

              time:时间

              failedType:失败类型

              failedMethod:失败的方法

            例3垃圾回收统计        

                jstat -gc 11976
                S0C         S1C         S0U   S1U   EC             EU           OC   

                24576.0   25600.0   0.0     0.0     206336.0   54242.5   59392.0 

                                               OU           MC           MU           CCSC    CCSU     YGC    YGCT  FGC

                27371.7   27096.0    26635.1   3200.0   3028.4     17        0.210  2 

                FGCT    GCT 

                0.160     0.370

             说明:

              S0C:第一个survivor区的大小(kb)

              S1C:第二个survivor区的大小(kb)

              S0U:第一个survivor区的使用大小(kb)

              S1U:第二个survivor区的使用大小(kb)

              EC:Eden区的大小 (kb)

              EU:Eden区的使用大小 (kb)

              OC:Old区的大小 (kb)

              OU:Old区的使用大小 (kb)

              MC:方法区的大小 (kb)

              MU:方法区的使用大小 (kb)

              CCSC:压缩类空间大小(kb)

              CCSU:压缩类空间使用大小(kb)

              YGC:年轻代垃圾回收次数

              YGCT:年轻代垃圾回收消耗时间

              FGC:老年代垃圾回收次数

              FGCT:老年代垃圾回收消耗时间

              GCT:垃圾回收消耗总时间

    七、jmap的使用以及内存溢出分析

       1、查看内存使用情况

          jmap -heap 11976

        2、查看内存中对象数量及大小

          查看所有对象,包括活跃及非活跃:jmap -histo ${pid} | more

          查看活跃对象:jmap -histo:live ${pid} | more

          

  • 相关阅读:
    动态生成 Excel 文件供浏览器下载的注意事项
    JavaEE 中无用技术之 JNDI
    CSDN 泄露用户密码给我们什么启示
    刚发布新的 web 单点登录系统,欢迎下载试用,欢迎提建议
    jQuery jqgrid 对含特殊字符 json 数据的 Java 处理方法
    一个 SQL 同时验证帐号是否存在、密码是否正确
    PostgreSQL 数据库在 Windows Server 2008 上安装注意事项
    快速点评 Spring Struts Hibernate
    Apache NIO 框架 Mina 使用中出现 too many open files 问题的解决办法
    解决 jQuery 版本升级过程中出现 toLowerCase 错误 更改 doctype
  • 原文地址:https://www.cnblogs.com/hmxs/p/11754021.html
Copyright © 2011-2022 走看看