标签:main方法 arc gif bsp 使用 aci 最大 struct lines
一、JAVA HEAP内存空间
Memory structure Of a JVM process
java堆内存空间分为:
新生代
新生区(Eden):初创对象
存活区(Survivor):步入成熟期的初创对象
ss1:
ss2:
老年代
mark --> compact
持久代
垃圾回收期:
新生代回收:
Minor GC
老年代回收:
Major GC(FULL GC)
堆内存空间的调整参数:
-Xmx: 新生代和老年代总共可用的最大空间
-Xms: 新生代和老年代初始空间之和;
-XX:NewSize 新生代初始空间
-XX:MaxSize 新生代的最大空间
-XX:MaxPermSize 持久代最大空间
-XX:PermSize 持久代初始空间
对tomcat而言:
catalina.sh中有两个环境变量:
CATALINA_OPTS:仅对启动运行tomcat实例的java虚拟机有效
JAVA_OPTS:对本机上的所有java虚拟机有效
我们可以在shell中:
export CATALINA_OPTS="Xmx256m"
二、JAVA性能监控工具
java常见问题:
OutofMemoryError: 内存不足;
内存泄露
线程死锁
锁竞争(Lock Contention)
java消耗过多的CPU
常用工具:
jps:java virtual machine process status tool,监控jvm进程状态信息
jps [options] [hostid]
-m: 输出传入main方法的参数
-l: 显示main类或jar的完全限定名称
-v: 显示为jvm虚拟机指定的参数
jstack: 查看某个java进程内的线程堆栈信息
jstack [options] pid
-l: 输出完整的锁信息
-m: 混合模式,即会输出java堆栈及C/C++堆栈信息
jmap和jhat:
jmap: jvm memory map, 查看堆内存使用情况
jhat: java heap analysis tool
jmap [options] pid
-heap: 详细输出堆内存空间使用状态信息
-histo[:live]:查看堆内存中的对象数目、大小统计结果
jstat:jvm统计监测工具
jstat <option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
其中<option>为必须提供的选项,所有可用选项可使用jstat -options列出
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation
字段意义:
S0C, S1C, S0U, S1U: C表示容量,U表示已用量
EC, EU: eden区域的容量和已用量
OC, OU: 老年代区域的容量和已用量
PC, PU: 持久代区域的容量和已用量
YGC, YGT: 新生代的GC次数和耗时
FGC,FGCT:FULL GC的次数和耗时
GCT: GC总耗时
另外还有两个GUI工具: jconsole, jvisualvm
标签:main方法 arc gif bsp 使用 aci 最大 struct lines
原文地址:https://www.cnblogs.com/ckh2014/p/14442367.html