JVM
eluanshi12
这个作者很懒,什么都没留下…
展开
-
深入理解JVM(八)——java堆分析
深入理解JVM(八)——java堆分析转载 2018-09-18 16:28:23 · 160 阅读 · 0 评论 -
深入理解JVM(七)——性能监控工具
深入理解JVM(七)——性能监控工具前言工欲善其事必先利其器,性能优化和故障排查在我们大都数人眼里是件比较棘手的事情,一是需要具备一定的原理知识作为基础,二是需要掌握排查问题和解决问题的流程、方法。本文就将介绍利用性能监控工具,帮助开发者更快更准的找到问题产生的根源。本文分为三部分,第一部分将介绍在Linux环境下的常用监控工具,第二部分介绍Windows环境下的监控工具,第三部分将通过一个案...转载 2018-09-18 13:47:48 · 157 阅读 · 0 评论 -
深入理解JVM(五)——垃圾回收器
深入理解JVM(五)——垃圾回收器 JVM的垃圾回收主要是针对以上堆空间的垃圾回收,当然其实也会针对元数据区(永久区)进行垃圾回收。串行收集器使用单线程进行垃圾回收。 对新生代回收使用复制算法, 对老年代使用标记压缩算法,最古老最稳定的收集器,回收时间较长 但其稳定性是优于其他回收器的 综合来说是一个不错的选择。要使用串行收集器,可以在启动配置时加上以下参数:-XX:...转载 2018-09-17 15:58:01 · 159 阅读 · 0 评论 -
深入理解JVM(四)——垃圾回收算法
深入理解JVM(四)——垃圾回收算法jvm系列(十):JVM演讲PPT分享stop the world会在执行某一个垃圾回收算法的时候产生,JVM为了执行垃圾回收,会暂停java应用程序的执行,等垃圾回收完成后,再继续运行。如果你使用JMeter测试过java程序,你可能会发现在测试过程中,java程序有不规则的停顿现象,其实这就是“stop the world”,停顿的时候JVM是在做垃圾...转载 2019-07-17 10:51:45 · 208 阅读 · 0 评论 -
深入理解JVM(三)——配置参数
深入理解JVM(三)——配置参数 1、跟踪参数 2、堆分配参数 3、栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存、栈内存。跟踪参数跟踪监控JVM,用于JVM调优以及故障排查。1、当发生GC时,打印GC简要信息使用-XX:+PrintGC或-verbose:gc参数这两个配置参数效果是一样的,都是在发生GC时打印出简要的信息,例如执行代码:...转载 2018-09-14 17:07:20 · 233 阅读 · 0 评论 -
深入理解JVM(六)——类加载器原理
转自:深入理解JVM(六)——类加载器原理转载 2018-09-18 09:51:50 · 133 阅读 · 0 评论 -
JVM 内存 (堆(heap)、栈(stack)和方法区(method) )
JVM 内存初学 (堆(heap)、栈(stack)和方法区(method) )堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区...转载 2018-09-19 17:16:22 · 438 阅读 · 0 评论 -
深入理解jvm-基本原理(一);内存模型、可见性、指令重排序(二)
深入理解JVM(一)——基本原理 java程序经过一次编译之后,将java代码编译为字节码也就是class文件,然后在不同的操作系统上依靠不同的java虚拟机进行解释,最后再转换为不同平台的机器码,最终得到执行。JVM基本结构 从这个结构不难看出,class文件被jvm装载以后,经过jvm的内存空间调配,最终是由执行引擎完成class文件的执行。内存空间: JVM内存...转载 2018-09-14 14:23:26 · 250 阅读 · 0 评论 -
强引用、软引用、弱引用、虚引用
当垃圾回收器宣布一个对象死亡,至少需要经过两个阶段:1.当对象进行可达性分析时发现没有和GC ROOTS相连接就会被第一次标记;2.判断对象是否覆盖finalize(),如果覆盖,并且未被引用过这个方法的对象就会被放在F-Queue中,最后由JVM执行该方法。(JVM自动创建的低优先级finalize()线程,方法执行随时可能会终止)强引用、软引用、弱引用、虚引用强引用最普通的引用 O...原创 2019-02-18 17:08:18 · 238 阅读 · 0 评论