首页 > 代码库 > JVM参数调优初步

JVM参数调优初步

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

 

JVM参数调优初步