jdk11
public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String next = scanner.next(); } }
5.1 -class:显示ClassLoader的相关信息
5.2 -gc: 显示与GC相关的信息
5.3 -gccapacity:显示内容基本与-gc相同,输出主要关注Java堆各个区域使用到的最大、最小空间
5.4 -gcutil:显示内容基本与-gc相同输出主要关注已使用空间占总空间的百分比
5.5 -gccause:与-gcutil功能一样,会额外输出导致最后一次或当前正在发生的GC产生的原因
5.6 -gcnew:显示新生代GC状况
5.7 -gcnewcapacity:显示内容基本与-gcnew相同,输出主要关注使用到的最大、最小空间
5.8 -gcold:显示老年代GC状况
5.9 -gcoldcapacity:显示内容基本与-gcold相同,输出主要关注使用到的最大、最小空间
5.10 -compiler:显示JIT编译器编译过的方法、耗时等信息
5.11 -printcompilation:输出已经被JIT编译过的方法
6. interval:以指定单位、秒(s) 或毫秒(ms) 表示的采样间隔。默认单位是毫秒。必须是正整数。指定后,该jstat命令会在每个时间间隔生成其输出
7. count:用于指定查询的总次数
8. -t参数:可以在输出信息前加上一个Timestamp列,显示程序的运行时间。单位:秒
我们可以比较Java进程的启动时间以及总GC时间(GCT 列),或者两次测量的间隔时间以及总 GC时间的增量,来得出GC时间占运行时间的比例。如果该比例超过20%,则说明目前堆的压力较大;如果该比例超过90%,则说明堆里几乎没有可用空间,随时都可能抛出OOM异常。|
9. -h参数:可以在周期性数据输出时,输出多少行数据后,输出一个表头信息
4.4 -flag name = value:设置name的值
4.5 -flags:输出全部参数
4.6 -sysprops:输出系统属性
4.7:java -XX:+PrintFlagsInitial:查看所有JVM参数启动的初始值
4.8 java -XX:+PrintFlagsFinal:查看所有JVM参数的最终值
4.9 java -XX:+PrintCommandLineFlags:查看被用户或JVM设置过的参数的信息
public static void main(String[] args) { List<String> list = new ArrayList<>(); while (true) { list.add(new String()); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } } }
4.2 -dump:live:只保存堆中的存活对象
4.3 -heap:输出整个堆空间的详细信息
4.4 -histo:输出堆中对象的统计信息,-histo:live只统计堆中存活的对象
4.5 -permstat:以ClassLoader以统计口径输出永久代的内存状态信息,仅Linux、Solaris系统有效
4.6 finalizerinfo:显示在F-Queue中等待Finalizer线程执行finalize方法的对象,仅Linux、Solaris系统有效
4.7 -F:当虚拟机进程对-dump选项没有任何响应时,可使用此选项强制执行生成dump文件,仅Linux、Solaris系统有效
4.8 -h|help:帮助命令
4.9 -j