标签:mod 体系 ade 对象引用 进入 ssi 弊端 混合 语言
Java之父:詹姆斯·高斯林
Java SE(Java Standard edition)
Java ME(Micro Edition)
Java EE(Java Enterprise Edition)
JDK(Java Development Kit)
JRE(Java Runtime Environment)
JVM(Java Virtual Machine)
官方结构图:https://docs.oracle.com/javase/8/docs/
TaobaoVM: 根据OpenJDK深度定制
运行时数据区
虽然叫做永久区,但是在永久区的对象也可以被GC回收
用于存放编译器生成的各种字面量和符号引用
OutofMemoryError:内存溢出
虚拟机栈为虚拟机执行Java方法
本地方法栈用来执行Native方法
唯一一个在Java虚拟机中内有规定任何OutofMemoryError情况的区域
空闲列表
本地线程分配缓冲
1.自身运行时数据(Mark Word)
类型指针
1.使用句柄
2.直接指针
JDK8使用的垃圾回收器: parallel
堆
基于标记清除算法,会产生大料的空间碎片
面向服务端应用的垃圾收集器
优势:
运作步骤:
https://docs.oracle.com/javase/8/docs/technotes/tools/index.html#monitor
jenkins@ubuntu-OptiPlex-7040:~$ jps
13154 Bootstrap
12191 Jps
参数:
# -l :虚拟机执行主类名称或者jar包的名称
jenkins@ubuntu-OptiPlex-7040:~$ jps -l
13154 org.apache.catalina.startup.Bootstrap
12462 sun.tools.jps.Jps
# -m :主类接收的参数
jenkins@ubuntu-OptiPlex-7040:~$ jps -m
13154 Bootstrap start
12552 Jps -m
# -v :JVM接收的参数
jenkins@ubuntu-OptiPlex-7040:~$ jps -v
13154 Bootstrap -Djava.util.logging.config.file=/home/jenkins/tomcat/jenkins/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -Dcatalina.base=/home/jenkins/tomcat/jenkins -Dcatalina.home=/home/jenkins/tomcat/jenkins -Djava.io.tmpdir=/home/jenkins/tomcat/jenkins/temp
12675 Jps -Denv.class.path=.:/home/ubuntu/software/jdk/jdk1.8.0_151/lib:/home/ubuntu/software/jdk/jdk1.8.0_151/jre/lib -Dapplication.home=/home/ubuntu/software/jdk/jdk1.8.0_151 -Xms8m
虚拟机统计信息监控:类装载、内存、垃圾收集、JIT编译等运行数据
实时查看和调整虚拟机各项参数
生产堆转储快照
$ jmap -dump:format=b,file=jenkins.bin 13154
Dumping heap to /home/jenkins/jenkins.bin ...
Heap dump file created
-XX:+HeapDumpOnOutofMemoryError : 虚拟机在OOM异常出现后自动生成dump文件
# 显示堆中对象通信信息
$ jmap -histo 13154 | less
功能:分析jamp生成的堆转储快照
一般不会在生产服务器上进行分析,非常耗CPU和内存,不常用
jenkins@ubuntu-OptiPlex-7040:~$ jhat jenkins.bin
Reading from jenkins.bin...
Dump file created Thu Feb 14 11:43:45 CST 2019
Snapshot read, resolving...
Resolving 12022774 objects...
Chasing references, expect 2404
dots
Eliminating duplicate references
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
浏览器访问http://ip:7000 查看分析结果
功能: 生成虚拟机当前时刻的线程快照,用来定位线程出现长时间停顿的原因,如线程见死锁、死循环、请求外部资源导致的长时间等待等
jstack -l 13154
死锁
调优需要的技能:
标签:mod 体系 ade 对象引用 进入 ssi 弊端 混合 语言
原文地址:https://www.cnblogs.com/gaoyuanzhi/p/10374016.html