zl程序教程

您现在的位置是:首页 >  后端

当前栏目

Jvm参数配置详解程序员

JVM配置程序员 详解 参数
2023-06-13 09:19:56 时间
-XX:- option 不启用option -XX: option = number 设定option的值为数字类型,可跟单位,例如 32k, 1024m, 2g -XX: option = string 设定option的值为字符串,例如-XX:HeapDumpPath=./dump.core 二、Java相关的JVM内存参数
-Xms :设置Java堆栈的初始化大小 

-Xmx :设置最大的java堆大小 

-Xmn :设置Young区大小 

-Xss :设置java线程堆栈大小 

-XX:PermSize and MaxPermSize :设置持久带的大小 

-XX:NewRatio :设置年轻代和老年代的比值 

-XX:NewSize :设置年轻代的大小 

-XX:SurvivorRation=n :设置年轻代中E去与俩个S去的比值
三、打印垃圾回收器信息和设置垃圾回收器(串行、并行、并发等行为的收集器)
-verbose:gc :记录GC运行以及运行时间,一般用来查看GC是否有瓶颈 

-XX:+PrintGCDetails :记录GC运行时的详细数据信息,包括新生占用的内存大小及消耗时间 

-XX:-PrintGCTimeStamps :打印收集的时间戳 

-XX:+UseParallelGC :使用并行垃圾收集器 

-XX:-UseConcMarkSweepGC :使用并发标志扫描收集器 

-XX:-UseSerialGC :使用串行垃圾收集器 

-Xloggc:filename :设置GC记录的文件 

-XX:+UseGCLogFileRotation :启用GC日志文件的自动转储 

-XX:GCLogFileSize=1M :控制GC日志文件的大小
四、调试参数
-Xdebug 

-Xnoagent 

-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

-XX:HeapDumpPath=./java_pid.hprof :Path to directory or file name for heap dump. 

-XX:-PrintConcurrentLocks :Print java.util.concurrent locks in Ctrl-Break thread dump. 

-XX:-PrintCommandLineFlags :Print flags that appeared on the command line.
五、关于性能
-Xprof 

-Xrunhprof
六、类加载和卸载的信息
Xbootclasspath :指定需要加载,但不想通过校验类路径。 

JVM会对所有的类在加载前进行校验并为每个类通过一个int数值来应用 

-XX:+TraceClassLoading :跟踪类加载的信息(诊断内存泄露很有用) 

-XX:+TraceClassUnloading :跟踪类卸载的信息(诊断内存泄露很有用)

七、jvm测试案例

1)首先配置VM arguments

Jvm参数配置详解程序员

2)案例

Jvm参数配置详解程序员

3)运行程序后,GC日志就可以打印出来了

Jvm参数配置详解程序员

DefNew(年轻代)
    年轻代分三个区。一个Eden区,两个Survivor区。大部分对象在Eden区中生成。当Eden区满时,还存活的对象将被复制到Survivor区(两个中的一个),当这个Survivor区满时,此区的存活对象将被复制到另外一个Survivor区,当这个Survivor区也满了的时候,从第一个Survivor区复制过来的并且此时还存活的对象,将被复制“年老区(Tenured)”。需要注意,Survivor的两个区是对称的,没先后关系,所以同一个区中可能同时存在从Eden复制过来对象,和从前一个Survivor复制过来的对象,而复制到年老区的只有从第一个Survivor区过来的对象。而且Survivor区总有一个是空 的。
Tenured(年老代)
    年老代存放从年轻代存活的对象。一般来说年老代存放的都是生命期较长的对象。
Perm(持久代)
    用于存放静态文件,持久代对垃圾回收没有显著影响,持久代大小通过-XX:MaxPermSize= N 进行设置。

1872.html

服务器部署程序员系统优化网站设置运维