JVM
文章平均质量分 95
JVM虚拟机
爱吃牛肉的大老虎
学无止境,既要有深度又要有广度地学习
展开
-
JVM调优之Arthas
Arthas是Alibaba开源的Java诊断工具,动态跟踪Java代码;实时监控JVM状态,可以在不中断程序执行的情况下轻松完成JVM相关问题排查工作。支持JDK 6+,支持Linux/Mac/Windows。这个工具真的很好用,而且入门超简单,十分推荐。这个类从哪个jar包加载的?为什么会报各种类相关的Exception?我改的代码为什么没有执行到?难道是我没commit?分支搞错了?遇到问题无法在线上debug,难道只能通过加日志再重新发布吗?转载 2022-12-23 15:32:04 · 308 阅读 · 0 评论 -
Thread.sleep(0)深入分析
因为我们知道,Java 程序员来说,虚拟机有自己的 GC 机制,我们不需要像写 C 或者 C++ 那样得自己管理内存,只要关注于业务代码即可,并没有特别注意 GC 机制。有了安全点的设定,也就决定了用户程序执行时并非在代码指令流的任意位置都能够停顿下来开始垃圾收集,而是强制要求必须执行到达安全点后才能够暂停。虚拟机为了避免安全点过多带来过重的负担,对循环还有一项优化措施,认为循环次数较少的话,执行时间应该也不会太长,所以使用。线程可能正处于框起来的五种不同的状态,针对不同的状态有不同的处理方案。转载 2022-09-09 18:07:58 · 2981 阅读 · 1 评论 -
CPU模型,内存分页与调优,内核与用户空间
我们知道,CPU是通过寻址来访问内存的。32位CPU的寻址宽度是,计算后得到的大小是4G,也就是说可支持的物理内存最大是4G。但在实践过程中,碰到了这样的问题,程序需要使用4G内存,而可用物理内存小于4G,导致程序不得不降低内存占用。为了解决此类问题,现代CPU引入了MMU(内存管理单元)MMU的核心思想是利用虚拟地址替代物理地址,即CPU寻址时使用虚址,由MMU负责将虚址映射为物理地址。MMU的引入,解决了对物理内存的限制,对程序来说,就像自己在使用4G内存一样。内存分页(Paging)是在使用和。...原创 2022-07-24 18:33:40 · 1496 阅读 · 0 评论 -
几种常见的JVM调优场景
文章目录1 JVM调优1.1 问题引入1.2 cpu占用过高1.2.1 排查死循环1.3 死锁1.4 内存泄漏1.4.1 模拟内存泄露1.4.2 mat分析dump1.4.3 线上分析转载于:https://mp.weixin.qq.com/s/HpMQOZwhIGCSpJemBiICdA1 JVM调优1.1 问题引入最近很多小伙伴跟我说,自己学了不少JVM的调优知识,但是在实际工作中却不知道何时对JVM进行调优。今天,我就为大家介绍几种JVM调优的场景。在阅读本文时,假定大家已经了解了运行时的数转载 2022-02-08 15:16:23 · 375 阅读 · 0 评论 -
JVM中class对象加载方式
文章目录1 class对象详解2 Class.forName和ClassLoader.loadClass区别2.1 jvm加载class步骤2.2 两种方式的详细方法2.3 两种方式的区别2.4 举例说明他们各自的使用方法1 class对象详解java中把生成Class对象和实例对象弄混了,更何况生成Class对象和生成instance都有多种方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class对象,然后再生成Instance。那Class对象的生成方式有哪些呢,以及其中是如何秘密生成的原创 2021-10-24 13:55:12 · 423 阅读 · 0 评论 -
源码分析:Java堆的创建
文章目录1 堆基本概念1.1 堆的实现方式1.2 堆的初始化:分代实现方式1.3 堆的初始化:堆内存空间分配1.4 内存空间申请实现原文出处: http://www.cnblogs.com/iceAeterNa/p/4877549.html1 堆基本概念虚拟机在内存中申请一片区域,由虚拟机自动管理,用来满足应用程序对象分配的空间需求,即堆空间。由于程序运行的局部特性,程序创建的大多数对象都具有非常短的生命周期,而程序也会创建一些生命周期特别长的对象。简单的复制收集器无论对象的 生命周期是长是短,都会转载 2021-10-21 21:45:12 · 458 阅读 · 0 评论 -
Java中四种引用详解以及对比区别
文章目录1 四种引用1.1 强引用1.2 软引用(SoftReference)1.3 弱引用(WeakReference)1.4 虚引用(PhantomReference)2 区别别比较1 四种引用Java 中一共有 4 种类型的引用 : StrongReference、 SoftReference、 WeakReference 以及 PhantomReference (虚引用),这 4 种类型的引用与 GC 有着密切的关系, 让我们逐一来看它们的定义和使用场景1.1 强引用本章前文介绍的引用实原创 2020-12-05 13:09:00 · 3188 阅读 · 1 评论 -
JVM加载class文件原理
文章目录1 简单介绍1.1 跨平台运行1.2 编译机制2 类加载机制2.1 加载方式2.2 加载过程2.2.1 加载2.2.2 链接2.2.2.1 验证2.2.2.1.1 文件格式验证2.2.2.1.2 元数据验证2.2.2.1.3 字节码验证2.2.2.1.4 符号引用验证2.2.2.2 准备2.2.2.3 解析2.2.3 初始化2.2.4 类加载总结2.3 类加载时机2.3.1 类初始化的条件2.3.2 对象初始化顺序3 类加载器3.1 了解类加载器3.2 类加载器分类3.3 类加载机制3.3.1 类原创 2020-07-14 17:19:36 · 3023 阅读 · 2 评论 -
JVM中内存泄漏,内存溢出,栈溢出
目录1 定义2 内存泄漏的分类3 Java内存回收机制4 Java内存泄露引起原因4.1 静态集合类引起内存泄露4.2 监听器4.3 各种连接4.4 单例模式1 定义内存溢出 (out of memory),是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;内存泄露 (memory leak),是指程序在申请内存后......原创 2019-06-04 21:43:29 · 4797 阅读 · 1 评论 -
JVM之参数优化,垃圾收集器选择,GC日志分析
目录1 JDK 常用 JVM 优化相关命令1.1 jps1.2 jstat1.3 jvisualvm1.5 jdk参数,命令,可视化工具2 JVM 常见参数2.1 内存设置2.2 内存设置经验分享2.3 收集器设置2.4 垃圾回收统计信息2.5 并行收集器设置2.6 收集器设置经验分享2.7 简单总结1 JDK 常用 JVM 优化相关命令...........................原创 2019-09-07 22:46:05 · 2182 阅读 · 2 评论 -
JVM中垃圾回收算法及垃圾收集器
目录1 垃圾收集器的分类1.1 次收集器1.2 全收集器1.3 垃圾回收器的常规匹配2 常见垃圾回收算法2.1 引用计数(Reference Counting)2.2 复制(Copying)2.3 标记-清除(Mark-Sweep)2.4 标记-整理(Mark-Compact)3 分代垃圾收集器3.1 串行收集器(Serial)3.2 并行收集器(P...................................................转载 2019-09-07 20:34:37 · 1574 阅读 · 1 评论 -
JVM8基础结构图理解
目录1 理解DOS里面的java命令2 JVM内存2.1 JVM主要组成部分2.2JVM内存(运行时数据区域)2.2.1 虚拟机内存与本地内存区别2.2.2JVM内存(运行时数据区域)中的JVM内存2.2.3 程序计数器(Program Counter Register)2.2.4虚拟机栈(JVM Stacks)2.2.5 本地方法栈(Native Method Stacks)2.2.6Java堆(Java Heap)2.2.7 方法区(Method A....原创 2019-09-07 20:10:53 · 2362 阅读 · 2 评论