jvm
文章平均质量分 72
归海一刀之渔舟唱晚
这个作者很懒,什么都没留下…
展开
-
jvm 常用命令
trace 跟踪参数 -verbose:gc -XX:+PrintGC 打印gc-XX:+PrintGCDetails 打印gc的详细信息Heap PSYoungGen total 76288K, used 5243K [0x000000076b380000, 0x0000000770880000, 0x00000007c0000000) e原创 2017-08-20 17:34:01 · 257 阅读 · 0 评论 -
1.java类的加载机制
1、什么是类的加载类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。类加载器并不需要等到某个类被“首次主动使用”时再加载...转载 2018-03-02 13:52:23 · 708 阅读 · 0 评论 -
2.jvm内存结构
所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能问题,那么这些问题就会变的非常常见,了解JVM内存也是为了服务器出现性能问题的时候可以快速的了解那块的内存区域出现问题,以便于快速的解决生产故障。先看一张图,这张图能很清晰的说明JVM内存结构布局。JVM内存结构主要...转载 2018-03-19 11:27:13 · 251 阅读 · 0 评论 -
G1 解决Evacuation Failure和Humongous Allocation
希望您对G1有所了解。在jdk8中,我们很多会使用G1垃圾收集器,她是目前唯一跨越年轻代和年老代的垃圾收集器。里面有一个混合垃圾收集,可以清理全部的年轻代和部分年老代。G1里面东西还有很多,希望读者有一定的基础,下面我们来说说gc日志中常出现的两个组词:Evacuation Failure和Humongous Allocation。为什么只说这两个呢?很简单,因为它们耗时多!直接关系...原创 2018-03-30 12:18:16 · 12184 阅读 · 2 评论 -
为什么新生代内存需要有两个Survivor区?
对于常见的GC算法,我们都应该知道,例如:标记清除算法、复制算法、标记整理算法等。标记清除算法由于回收之后存在大量的内存碎片,存在效率和空间问题!为了解决效率问题,引出了复制算法!熟悉GC算法的小伙伴应该都看过周志明老师的《深入理解Java虚拟机》这本书。因此,这里不再讨论这几种GC算法的区别,这里假设大家都已经有所了解,为了照顾遗忘的小伙伴,这里祭出周志明老师的部分文章内容,没有了解的赶紧下来补...转载 2018-03-25 18:40:39 · 407 阅读 · 0 评论 -
详解 JVM Garbage First(G1) 垃圾收集器
前言 Garbage First(G1)是垃圾收集领域的最新成果,同时也是HotSpot在JVM上力推的垃圾收集器,并赋予取代CMS的使命。如果使用Java 8/9,那么有很大可能希望对G1收集器进行评估。本文详细首先对JVM其他的垃圾收集器进行总结,并与G1进行了简单的对比;然后通过G1的内存模型、G1的活动周期,对G1的工作机制进行了介绍;同时还在介绍过程中,描述了可能需要引起注意的优化点。笔...转载 2018-04-10 23:27:18 · 265 阅读 · 0 评论 -
初步诊断你的GC
前言JVM的GC机制让Java程序员省去了自己垃圾回收的烦恼,大大提高了生产效率。但是正因为JVM垃圾回收机制足够优秀,导致很多Java程序员对JVM这个黑盒了解甚少,很多人没有去了解它,很多人也没机会去了解它。然而要想成为一名优秀的Java程序员,了解JVM和它的GC机制,写出JVM GC机制更喜欢的代码,是必须要掌握的一门技术;这篇文章我主要说一下如何初步诊断JVM的GC是否允许正常,重点讲解...转载 2018-03-29 11:45:58 · 1503 阅读 · 0 评论