10、如果做过 JVM 调优和参数配置,请问如果盘点查看 JVM 系统默认值?

1、JVM 的参数类型有哪几种?

  • 标配参数
    version
    help
  • X 参数(了解)
    Xint:解释执行
    Xcomp:第一次使用就编译成本地代码
    Xmixed:混合模式
  • XX 参数(重点)
    Boolean 类型:-XX:+ 或者 - 某个属性值(+ 表示开启,- 表示关闭)
    -XX:+PrintGCDetails:打印 GC 收集细节
    -XX:-PrintGCDetails:不打印 GC 收集细节
    -XX:+UseSerialGC:使用了串行收集器
    -XX:-UseSerialGC:不使用了串行收集器
    KV 设置类型:-XX:key=value
    -XX:MetaspaceSize=128m
    -XX:MaxTenuringThreshold=15
    jinfo 举例,如何查看当前运行程序的配置

死锁代码:

package com.example.rabbitmq.test.nio;

public class DeadLockDemo {

    public static void main(String[] args) {
        String lock1="lock1";
        String lock2="lock2";

        new Thread(()->{
            try {
                dealLockMethod(lock1,lock2);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },"AAA").start();

        new Thread(()->{
            try {
                dealLockMethod(lock2,lock1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        },"BBB").start();

    }

    //死锁方法
    public static void dealLockMethod(String lock1,String lock2) throws InterruptedException {
        //获取一个锁,尝试再获取另一个锁
        synchronized (lock1){
            System.out.println("获取一个锁="+lock1+",再尝试获取其他锁="+lock2);
            Thread.sleep(2000);
            //尝试获取第二把锁
            synchronized (lock2){
                System.out.println("尝试获取第二把锁="+lock2);
            }
        }
    }
}

我们可以使用 jps -l 命令查看进程ID
在这里插入图片描述

7952 com.example.rabbitmq.test.nio.DeadLockDemo
4932 sun.tools.jps.Jps
10648 org.jetbrains.jps.cmdline.Launcher
10856
11032 org.jetbrains.idea.maven.server.RemoteMavenServer36

再使用 jinfo -flag PrintGCDetails 7952 命令查看
在这里插入图片描述
可以看出默认是不打印 GC 收集细节
也可是使用jinfo -flags 7952 查看所以的参数

  • 两个经典参数:-Xms 和 - Xmx(如 -Xms1024m)
    -Xms 等价于 -XX:InitialHeapSize
    -Xmx 等价于 -XX:MaxHeapSize

2、盘点家底,查看 JVM 默认值

  • 查看初始默认值:-XX:+PrintFlagsInitial
    在这里插入图片描述
cuzz@cuzz-pc:~/Project/demo$ java -XX:+PrintFlagsInitial
[Global flags]
     intx ActiveProcessorCount                      = -1                                  {product}
    uintx AdaptiveSizeDecrementScaleFactor          = 4                                   {product}
    uintx AdaptiveSizeMajorGCDecayTimeScale         = 10                                  {product}
    uintx AdaptiveSizePausePolicy                   = 0                                   {product}
    uintx AdaptiveSizePolicyCollectionCostMargin    = 50                                  {product}
    uintx AdaptiveSizePolicyInitializingSteps       = 20                                  {product}
    uintx AdaptiveSizePolicyOutputInterval          = 0                                   {product}
    uintx AdaptiveSizePolicyWeight                  = 10                                  {product}
   ...
  • 查看修改更新:-XX:+PrintFlagsFinal
bool UsePSAdaptiveSurvivorSizePolicy           = true                                {product}
bool UseParNewGC                               = false                               {product}
bool UseParallelGC                            := true                                {product}
bool UseParallelOldGC                          = true                                {product}
bool UsePerfData                               = true                                {product}
bool UsePopCountInstruction                    = true                                {product}
bool UseRDPCForConstantTableBase               = false     

= 与 := 的区别是,一个是默认,一个是人物改变或者 jvm 加载时改变的参数。

  • 打印命令行参数(可以看默认垃圾回收器):-XX:+PrintCommandLineFlags
cuzz@cuzz-pc:~/Project/demo$ java -XX:+PrintCommandLineFlags
-XX:InitialHeapSize=128789376 -XX:MaxHeapSize=2060630016 -XX:+PrintCommandLineFlags -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseParallelGC 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的小蜗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值