JVM-00-工具使用
JVM 相关设置
-XX:+PrintFlagsInitial
打印所有 JVM 的默认参数。
-XX:+PrintFlagsFinal
打印经过修改之后的 JVM 参数。
-XX:+PrintGCDetials
执行过程中输出 GC 的过程。
-Xms100m
等价于 -XX:InitialHeapSize=100m
设置堆空间的初始内存大小为 100m,默认为物理内存 1/64。
-Xmx100m
等价于 -XX:MaxHeapSize=100m
设置对空间的最大内存大小为 100m,默认为物理内存 1/4。
-Xss1m
(可以附加单位)等价于 -XX:ThreadStackSize=1024
(指定单位为 kb)
-XX:SurvivorRatio=8
设置 S0 S1 区和 Eden 区比例为 1:1:8 。
-XX:NewRatio=3
设置新生代和老年代的比例为 1:3。
-XX:MaxTenuringThreshold=10
设置 S 区晋升老年代的时间门槛为生存 10 次 GC。
Parallel GC 设置
-XX:+UseParallelGC
和 -XX:+UseParallelOldGC
两个参数参数相互激活,任意一个启动,就会 Parallel GC 和 Parallel Old GC 一起接管整个堆区的垃圾回收。
-XX:ParallelGCThreads
设置 Parallel GC 用于垃圾回收的线程数量,一般设置成等于 CPU 的核心数量大小。大于 8 的话可以:使用公式计算: 3+[5*Core_Count]/8]
-XX:+UseAdaptiveSizePolicy
使用自适应的调节策略,虚拟机会自动完成调优的工作。
jps
Java Process Status,用来查看 Java 当前正在运行的进程的相关信息。
jps
输出 PID 和进程名。
jps -l
输出 PID 和详细的进程名。
jps -v
打印 JVM 的设置参数。
jVirutalVM
可视化工具
jinfo
用来查看某一个 Java 进程的 JVM 参数设置,格式:
1 | Usage: |
PID 用 jps 来获取。
jstat
字节码相关
javac
javac file.java
将 Java 文件编译成 class 文件。
javac -g file.java
编译时生成局部变量表,不加的话默认指生成行号,源文件信息(IDEA 和 Eclipse 默认加此参数)。
javap
javap file.class
简略的反编译 class 文件。
javap -c file.class
只显示方法的字节码信息
javap -v file.class
显示所有反编译出来的信息。