JVM
文章平均质量分 89
gonghaiyu
7年开发经验,2年项目管理经验。曾分别就职于某军工所,京东,美的等全球500强企业。
展开
-
JVM(一)一文读懂Java编译全过程
一文读懂Java编译全过程Java文件编译过程包括两个阶段,第一阶段是在编译阶段编译成Java字节码的过程,有些书籍中叫前端编译器,如Oracle的javac编译器;第二阶段是在运行时,通过JVM的编译优化组件,对代码中的部分代码编译成本地代码,即JIT编译,如HotSpot中的C1、C2编译器。JVM整个编译过如下图所示。其中,编译状态有如下9种。//编译状态 public enum CompileState { INIT(0),//初始化 PARSE(1),//原创 2021-06-07 14:28:30 · 18686 阅读 · 1 评论 -
Java虚拟机
什么是虚拟机虚拟机是模拟执行某种指令集体系结构的软件。可分为三类。(1)进程虚拟机,如java虚拟机。(2)系统虚拟机,如visualbox,vm。(3)协设计虚拟机,如FPGA有人模拟了虚拟机协处理器(包括二进制翻译器以及TCache等部件单元)。...原创 2021-06-06 21:31:52 · 2289 阅读 · 0 评论 -
Java应用调优实战-工具支持
哪些资源,容易成为瓶颈当系统存在短板时,就会对性能造成较大的负面影响,比如当 CPU 的负载特别高时,任务就会排队,不能及时执行。而其中,CPU、内存、I/O 这三个系统组件,又往往容易成为瓶颈,所以接下来我会对这三方面分别进行讲解。CPU首先介绍计算机中最重要的计算组件中央处理器 CPU,围绕 CPU 一般我们可以:通过 top 命令,来观测 CPU 的性能;通过负载,评估 CPU 任务执行的排队情况;通过 vmstat,看 CPU 的繁忙程度。具体情况如下。top 命令 —— CP原创 2020-10-29 16:57:26 · 319 阅读 · 1 评论 -
Java应用调优实战-性能优化方法论
衡量指标有哪些?1. 吞吐量和响应速度分布式的高并发应用并不能把单次请求作为判断依据,它往往是一个统计结果。其中最常用的衡量指标就是吞吐量和响应速度,而这两者也是考虑性能时非常重要的概念。像我们平常开发中经常提到的,QPS 代表每秒查询的数量,TPS 代表每秒事务的数量,HPS 代表每秒的 HTTP 请求数量等,这都是常用的与吞吐量相关的量化指标。在性能优化的时候,我们要搞清楚优化的目标,到底是吞吐量还是响应速度。 有些时候,虽然响应速度比较慢,但整个吞吐量却非常高,比如一些数据库的批量操作、一些原创 2020-10-02 21:23:21 · 699 阅读 · 0 评论 -
Class文件结构和JVM字节码执行
10.class文件结构10.1.语言无关性很多语言都可以编译成class文件,如java,rb,groovy等。10.2.文件结构10.2.1.魔数与版本魔数定义了文件是Java类型的文件。比如在图片文件的开头,也有定义图片的类型的魔数。版本号告知JVM是否能执行文件中的代码。比如低版本jdk无法执行高版本jdk编译出的class文件。关于为什么魔数不叫JAVA叫CAFEBEAN,这是James Gosling 的解释We used to go to lunch at a pl原创 2020-09-23 10:02:51 · 146 阅读 · 0 评论 -
JVM内核及原理、诊断与优化 - 锁
介绍一下传统的锁是重量级的,monitorenter有可能让线程在OS层面挂起。JVM内核及原理、诊断与优化 - 锁9.1 线程安全9.2 对象头9.3. 偏向锁9.4. 轻量级锁9.5. 自旋锁9.6. 偏向锁,轻量级锁,自旋锁总结9.7. 减少锁的持有时间9.8. 减小锁粒度9.9. 锁分离9.10. 锁粗化9.11. 锁消除9.12. 无锁9.1 线程安全多线程网站统计访问人数(1)使用锁,维护计数器的串行访问与安全性多线程访问ArrayListpublic class TestT原创 2020-09-22 21:11:32 · 120 阅读 · 0 评论 -
第二十六章 ThreadLocal原理及生产中遇到的坑
ThreadLocal原理及生产中遇到的坑什么是ThreadLocalThreadLocal实现原理ThreadLocal使用场景ThreadLocal常用示例ThreadLocal 实现原理静态内部类的实例化ThreadLocal结构ThreadLocal主要方法剖析几个概念主要方法initialValue方法set方法清除脏的entry替换脏的entryrehash方法get方法remove方法thread.exit()ThreadLocal内存泄漏问题总结2.4 为什么使用弱引用?什么是Thre.原创 2020-09-22 00:11:53 · 646 阅读 · 0 评论 -
OOM那些事
随着业务量的增长,很容易产生OOM。目前已经遇到过三次OOM,下面我将讲解每次OOM的解决方案。问题的产生最近一次OOM发生在今天,当时前端反馈微信公众号扫描出现故障。后面几乎群里就炸了。我默默的打开了后门,通过郁闷访问试了下,果然挂了。返回503。什么原因导致503呢?什么情况下突然系统就不行了呢?最先想到的是网络问题,然后打开xshell。通过ip端口访问后台。发现竟然可以访问通。所以,我更加断定是网络问题。解决思路我找到了运维,说是网络问题,就让运维去查找问题了。如果是网络问题,中间只有.原创 2020-09-18 21:44:27 · 308 阅读 · 0 评论 -
JVM垃圾回收算法及G1回收机制
1.related doc• Garbage Collection: Algorithms for Automatic Dynamic Memory Management.• The Garbage Collection Handbook: The Art of Automatic Memory Managmenet.8以前支持3种运行模式。-jvm。JAVA HotSpot VM 提供了多种垃圾收集器。每种垃圾收集器都是为满足不同需求而生的。首先,介绍了一般串行垃圾回收器的垃圾收集的一般特征和基原创 2020-09-12 14:13:18 · 1625 阅读 · 0 评论 -
JVM类装载器机制
7. 类装载器7.1. class装载验证流程类加载全过程加载-链接-初始化。JVM把class文件加载到内存,并对数据进行校验、解析和初始化,最终形成JVM可以直接使用的JAVA类型的过程。加载:查找并加载类全限定名的二进制字节流,转为方法区数据结构(特殊的堆),在Java堆中生成对应的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。注意:对于数组类,情况就有所不同,数组类本身不通过类加载器创建,它是由Java虚拟机直接创建的。但数组类与类加载器仍然有很密切的关系原创 2020-09-12 14:05:31 · 161 阅读 · 0 评论 -
JVM内核及原理、诊断与优化-垃圾回收器算法及回收机制
JVM内核及原理、诊断与优化-垃圾回收器算法及回收机制4. GC算法与种类4.1. GC的概念4.2. GC算法4.2.1. 引用计数法4.2.2. 标记-清除算法4.2.3. 标记-压缩算法4.2.4. 复制算法4.2.4.1分代思想4.2.4.2 GC算法总结整理4.3. 可触及性4.3.1. 可触及性4.4. Stop-The-World5. GC参数5.1. 堆的回顾5.2. 串行收集器5.2.1. 优缺点及使用参数5.3. 并行收集器5.4. CMS收集器4. GC算法与种类4.1. GC.原创 2020-09-11 16:19:12 · 122 阅读 · 0 评论 -
JVM各个分区及参数设置
JVM内核及原理、诊断与优化-基础篇1. 初识JVM1.1. JVM的概念1.2. JVM发展历史1.3. JVM的历史-大事记1.4. JVM种类1.5. JAVA语言规范1.6. JVM规范1.7 JVM的编译2. JVM运行机制2.1. JVM启动流程2.2. JVM基本结构2.2.1. PC寄存器2.2.2. 方法区2.2.3. Java堆2.2.4. Java栈2.3. 内存模型(JMM)3. 常用JVM配置参数1. 初识JVM1.1. JVM的概念 JVM是Java Virtual .原创 2020-09-10 22:00:34 · 848 阅读 · 0 评论