Fork me on GitHub

随笔分类 -  jvm

摘要:原先我们学习了jvm的命令行工具,现在我们来学习命令行的可视化工具jconsole: 为了测试我们启动原先的springboot项目 jconsole工具 jconsole(Java Monitoring and Management Console)是一种基于 JMX 的可视化监视、管理工具,它管 阅读全文
posted @ 2019-09-25 00:04 xbwang520 阅读(486) 评论(0) 推荐(0)
摘要:概述 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。 数据包括:运行日志、异常堆栈、GC 日志、线程快照。 使用(threaddump/javacore文件)、堆转储快照( heapdump/hprof文件)等。使用适当的虚拟机监控和分析的工具可以加快我们 阅读全文
posted @ 2019-09-24 17:50 xbwang520 阅读(289) 评论(0) 推荐(0)
摘要:如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们对各个收集器进行比较,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。试想一下:如果有一种四海之内、任何场景 阅读全文
posted @ 2019-09-24 00:46 xbwang520 阅读(182) 评论(0) 推荐(0)
摘要:经过上篇如何判断对象是否死亡,那么jvm要对死亡的对象进行垃圾回收,垃圾回收的算法主要有以下几种: 一、标记-清楚算法 该算法分为“标记”和“清除”阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带 阅读全文
posted @ 2019-09-24 00:02 xbwang520 阅读(193) 评论(0) 推荐(0)
摘要:堆中几乎放着所有的对象实例,对堆垃圾回收前的第一步就是要判断那些对象已经死亡(即不能再被任何途径使用的对象)。 判断兑现死亡的方式主要有,引用记数法和可达性性分析算法 引用记数法 给对象中添加一个引用计数器,每当有一个地方引用它,计数器就加 1;当引用失效,计数器就减 1;任何时候计数器为 0 的对 阅读全文
posted @ 2019-09-23 23:37 xbwang520 阅读(290) 评论(0) 推荐(0)
摘要:java堆内存概述 Java 的自动内存管理主要是针对对象内存的回收和对象内存的分配。同时,Java 自动内存管理最核心的功能是 堆 内存中对象的分配与回收。 Java 堆是垃圾收集器管理的主要区域,因此也被称作GC 堆(Garbage Collected Heap).从垃圾回收的角度,由于现在收集 阅读全文
posted @ 2019-09-23 04:24 xbwang520 阅读(828) 评论(0) 推荐(0)
摘要:上一篇jvm博客中我们学习了jvm的内存模型,本篇中我们来探索对象是如何创建的,对象的内存布局,对象是如何访问到的。 对象的创建过程 第一步:类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中(JDK1.7 及之后版本的 JVM 已经将运行时常量池从方法区中移了出 阅读全文
posted @ 2019-09-23 00:34 xbwang520 阅读(193) 评论(0) 推荐(0)
摘要:cpu和计算机内存的交互 在计算机中,cpu和内存的交互最为频繁,相比内存,磁盘读写太慢,内存相当于高速的缓冲区 但是随着cpu的发展,内存的读写速度也远远赶不上cpu。因此cpu厂商在每颗cpu上加上高速缓存,用于缓解这种情况。现在cpu和内存的交互大致如下。 cpu上加入了高速缓存这样做解决了处 阅读全文
posted @ 2019-09-09 02:58 xbwang520 阅读(239) 评论(0) 推荐(0)