JVM(三大参数类型)四

 你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值
 1. jps -l  :查看具体的进程编号
      jinfo -flag 具体参数  进程编号
      jinfo -flags  java进程编号
 2. java -XX:+PrintFlagsInitial
     java -XX: + PrintFlagsFinal  -version
     java -XX:+PrintCommandLineFlags -version

JVM(三大参数类型)四_第1张图片

①. 标配参数 和X 参数(了解)

1>. 标配参数和X 参数(了解)

1.标配参数

  • -verison | -help | java -showversion

JVM(三大参数类型)四_第2张图片
2.X参数(了解)

  • ①. -Xint:解释执行

  • ②. -Xcomp:第一次使用就编译成本地代码

  • ③. -Xmixed:混合模式

JVM(三大参数类型)四_第3张图片

②. XX参数

2>. XX参数(掌握)

①. Boolean类型

1. XX参数的Boolean类型

  • ①. 图解Boolean类型参数

JVM(三大参数类型)四_第4张图片

  • ②. 代码演示
	//下面的演示要注意先启动HelloGC 
	public class HelloGC {
	    public static void main(String[] args) throws InterruptedException {
	        System.out.println("*****HelloGC");
	        //如何查看一个正在运行中的java程序,它的某个jvm参数是否开启?具体值是多少?
	        Thread.sleep(600000);
	    }
	}
  • ③. 如果查看一个正在运行中的java程序,它的某个Jvm参数是否开启?
    jps -l
    [-l 输出应用程序main class的完整package名或者应用程序的jar文件完整路径名]
    jinfo -flag PrintGCDetails 进程id

JVM(三大参数类型)四_第5张图片

JVM(三大参数类型)四_第6张图片

②. KV设置类型

2>. KV设值类型

  • ①. 图解KV设值类型
    JVM(三大参数类型)四_第7张图片
  • ②. jinfo举例,如何查看当前运行程序的配置
    公式:jinfo -flag 配置项 进程编号

三个案列:
(1).caseOne
JVM(三大参数类型)四_第8张图片
(2).caseTwo
JVM(三大参数类型)四_第9张图片
(3).caseThree
JVM(三大参数类型)四_第10张图片

  • ③. 题外话(坑题)
    JVM(三大参数类型)四_第11张图片

③. 查看JVM默认值

3>. 查看JVM默认值

你说你做过JVM调优和参数配置,请问如何盘点查看JVM系统默认值?
[重点]
①. jps jinfo -flag 具体参数 java进程编号
jinfo -flags java进行编号
②. java -XX:+PrintFlagsInitial
java -XX: + PrintFlagsFinal -version
java -XX:+PrintCommandLineFlags -version

JVM(三大参数类型)四_第12张图片JVM(三大参数类型)四_第13张图片
JVM(三大参数类型)四_第14张图片

④. 基本配置参数有哪些

4>. 基本配置参数有哪些

日常案列设置用如下即可:掌握
-Xms128m -Xmx128m Xss1024k -XX:MetaspaceSize=512 -XX:+PrintCommandLineFlags -XX:+PrintGCDetails -XX:+UseSerialGC
JVM(三大参数类型)四_第15张图片

	1.-Xms:初始大小内存,默认为物理内存1/64 等价于-XX:InitialHeapSize
	
	2.-Xmx:最大分配内存,默认为物理内存1/4  等价于-XX:MaxHeapSize
	
	3.-Xss:设置单个线程栈的大小,一般默认为512k- 1024k 等价于-XX:ThreadStackSize
	
	4.-Xmn : 设置年轻代大小(一般使用默认值 
	
	5.-XX:MetaspaceSize:设置元空间大小[这个参数一般会调大点,防止OOM]
	
	6.-XX:MaxTenuringThreshold=15
	
	7.-XX:+UseSerialGC   串行垃圾回收器
	  -XX:+UseParallelGC 并行垃圾回收器

    8.-XX:+PrintGCDetails 输出详细GC收集日志信息

①. -XX:MetaspaceSize

1. -XX:MetaspaceSize

  • 元空间的本质和永久代类似,都是堆JVM规范中方法区的实现,不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存。因此默认情况下,元空间的大小受本地内存限制

②. -XX:+PrintGCDetails

2.-XX:+PrintGCDetails

	public class jvmDemo1 {
	    public static void main(String[] args) {
	        byte[]bytesArray=new byte[50*1024*1024];
	        System.out.println("gc coming.....");
	    }
	}

JVM(三大参数类型)四_第16张图片

  • ①. GC
    JVM(三大参数类型)四_第17张图片
  • ②. Full GC
    JVM(三大参数类型)四_第18张图片

③. -XX:SurvivoRatio(了解)

3.-XX:SurvivoRatio
JVM(三大参数类型)四_第19张图片JVM(三大参数类型)四_第20张图片

④. -XX:NewRatio(了解)

4.-XX:NewRatio
JVM(三大参数类型)四_第21张图片

⑤. -XX:MaxTenuringThreshold

5.-XX:MaxTenuringThreshold(设置垃圾最大年龄)

JVM(三大参数类型)四_第22张图片

你可能感兴趣的:(JVM(三大参数类型)四)