摘要: 阿里巴巴Arthas详解 Arthas 是 Alibaba 在 2018 年 9 月开源的 Java 诊断工具。支持 JDK6+, 采用命令行交互模式,可以方便的定位和诊断线上程序运行问题。Arthas 官方文档十分详细,详见:https://alibaba.github.io/arthas Art 阅读全文
posted @ 2021-02-01 13:28 我看见到处是阳光 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 前置程序启动 事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用 Jmap 此命令可以用来查看内存信息,实例个数以及占用内存大小 jmap -histo 14660 #查看历史生成的实例 jmap -histo:live 14660 #查看当前存活的实例,执行过程中 阅读全文
posted @ 2021-01-30 11:30 我看见到处是阳光 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 一、G1垃圾收集器(-XX:+UseG1GC) P1:G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征. G1将Java堆划分为多个大小相等的独立区域(Region),JVM目标 阅读全文
posted @ 2021-01-29 09:43 我看见到处是阳光 阅读(636) 评论(0) 推荐(0) 编辑
摘要: 一、垃圾收集算法 P1: 分代收集理论 当前虚拟机的垃圾收集都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将Java堆分为新生代和老年代,这个我们就可以根据各个年代的特点选择合适的垃圾收集算法 比如在新生代中,每次收集都会有大量对象(接近99%)死去,所 阅读全文
posted @ 2021-01-28 11:46 我看见到处是阳光 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 后期补。 阅读全文
posted @ 2021-01-28 11:38 我看见到处是阳光 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 一、对象创建过程 P1:对象创建的主要流程: 1)类加载检查: 虚拟机遇到一条new指令时,首先去检查这个指令的参数是否能在常量池中定位到该类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程 new指令对应到语言层面上讲是,new关键字、对 阅读全文
posted @ 2021-01-26 11:13 我看见到处是阳光 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 一、JDK体系结构与跨平台特性介绍 P1:跨平台的根本就是JVM 二、JVM内存模型剖析 代码清单: 1 public class Math { 2 3 public static final int initData = 123; 4 5 public int compute(){ //一个方法对 阅读全文
posted @ 2021-01-25 09:50 我看见到处是阳光 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、Java类加载运行全过程 P1:通过Java命令执行代码的大致过程: 1)window系统下java.exe调用底层的jvm.dll文件创建Java虚拟机(c++实现) 2)创建一个引导类加载器实例(c++实现) 3)c++调用Java代码创建JVM启动器,实例sun.misc.Launcher 阅读全文
posted @ 2021-01-24 13:18 我看见到处是阳光 阅读(122) 评论(0) 推荐(0) 编辑