Java命令基本格式
java [-options] class [args...]
- -options 表示Java虚拟机的启动参数。
- class为带main()函数的Java类。
- args表示传递给main()函数的参数。
堆空间的结构:
- eden
- s0
- s1
- tenured
Server模式与Client模式
Server模式
-server
设置Java栈参数
-Xss 线程最大栈空间。
例:-Xss128K
-XX:+DoEscapeAnalysis 启用逃逸分析。只有在Server模式下才可以使用。
-XX:+EliminateAllocations 开启了标量替换(默认打开),允许将对象打散分配在栈上,比如对象拥有id和name两个字段,那么这两个字段将会视为独立的局部变量进行分配。
-XX:-UseTLAB 关闭TLAB
Java方法区
JDK1.6,JDK1.7中,方法区(永久区)可以使用参数如下:
-XX:PermSize 初始化方法去大小。例:-XX:PermSize=5m
-XX:MaxPermSize 最大方法区,默认情况为64MB。例:-XX:MaxPermSize=5m
元数据区
-XX:MaxMetaspaceSize
打印GC
-XX:+PrintGC 打印GC信息。
-XX:+PrintGCDetails GC后打印堆信息。
-XX:+PrintHeapAtGC GC前后分别打印堆的信息。
-XX:+PrintGCTimeStamps GC发生时,额外输出GC发生的时间,该输出时间为虚拟机启动后时间的偏移量。
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintReferenceGC
类加载/卸载的跟踪
-verbose:class 跟踪类的加载和卸载
-XX:+TraceClassLoading
-XX:+TraceClassUnloading
系统参数查看
-XX:+PrintVMOptions
-XX:+PrintCommandLineFlags 打印传递给虚拟机的显示和隐身参数。
设置Java堆参数
Xms:设置初始化堆空间。
Xmx:设置最大堆空间。例:-Xmx10m 即设置堆空间最大为10MB。
新生代的配置
Xmn
-XX:SurvivorRatio
-XX:NewRatio