码迷,mamicode.com
首页 > 其他好文 > 详细

第八章:JVM常用操作参数

时间:2019-10-08 21:53:23      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:jit   jdk8   time   系统   内存溢出   rac   for   opp   ati   

①虚拟机日志参数

  -XX:+PrintGC(在jdk9.jdk10中建议使用-Xlog:gc),使用这个参数启动java虚拟机,则在GC时就会打印相应日志

  -XX:+PrintGCDetails, 该参数可以打印堆的详细信息,描述各个区间的使用情况(jdk9,jdk10中使用-Xlog:gc*)

  -XX:+PrintGCApplicationStoppedTime,可以打印应用程序由于GC产生的停顿时间

  -Xloggc:log/gc.log,该命令可以在当前目录的log文件夹下gc.log文件中记录所有GC日志

 

②类加载/卸载跟踪

  -verbose:class可跟踪类的加载、卸载

  -XX:+TraceClassLoading(jdk9,jdk10中使用-Xlog:class+load=info)跟踪类的加载

  -XX:+TraceClassUnloading(jdk9,jdk10中使用-Xlog:class+unload=info)跟踪类的卸载

③查看虚拟机参数

  -XX:+PrintCommandLineFlags,可以打印传递给虚拟机的显式和隐式参数,隐式参数可能是虚拟机启动时自行设置

④堆的配置参数

  -Xms指定初始堆,-Xmx指定最大堆(示例:-Xmx20m -Xms5m,代表初始化堆5M,堆最大可用20M)

  -Xmn指定新生代大小,一般建议设置为整个堆空间的1/3到1/4

  -XX:SurvivorRatio,(示例:-XX:SurvivorRatio=2,代表eden:from=2:1)指定新生代中eden区和from/to区的比例。新生代区中,总可用新生代大小为(eden+from)或(eden+to),正常情况下from和to区的大小相同

  -XX:NewRatio,老年代/新生代的比例

⑤堆溢出处理

程序运行过程中,若堆空间不足,则会抛出OOM异常(Out Of Memory),Java虚拟机提供了两个参数

  -XX:+HeapDumpOnOutOfMemoryError可以在内存溢出时导出整个堆的信息

  -XX:HeapDumpPath,可以指定导出堆的存放路径(绝对路径)

⑥方法区配置

   jdk1.6和jdk1.7可以使用-XX:PermSize和-XX:MaxPermSize配置永久区的大小和最大永久区的大小

  上文也提到过,jdk8开始,永久区已经彻底移除,使用元数据区存放类的元数据,默认情况下,元数据区只受系统可用内存限制,但是依旧可以用-XX:MaxMetaspaceSize指定最大可用值

⑦栈配置

  -Xss:指定线程的栈大小

⑧虚拟机的工作模式

Client模式

    使用-client可以指定使用Client模式,该模式下启动较快,系统最大堆MaxHeapSize约为256MB,CompliThreshold默认为1500,即函数被调用1500次后,会进行JIT编译

Server模式

    使用-server可以指定使用server模式,该模式启动较慢,会尝试收集更多系统性能信息,使用更复杂的优化算法对程序进行优化,因此在系统完全启动后,Server模式会远快于Client模式。

    该模式下系统最大堆MaxHeapSize约为1GB,CompliThreshold默认为10000

 

 

 

 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?
 

 

?

第八章:JVM常用操作参数

标签:jit   jdk8   time   系统   内存溢出   rac   for   opp   ati   

原文地址:https://www.cnblogs.com/Lucky-stars/p/11637861.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!