摘要: 概述 广义的堆外内存 说到堆外内存,那大家肯定想到堆内内存,这也是我们大家接触最多的,我们在jvm参数里通常设置-Xmx来指定我们的堆的最大值,不过这还不是我们理解的Java堆,-Xmx的值是新生代和老生代的和的最大值,我们在jvm参数里通常还会加一个参数-XX:MaxPermSize来指定持久代的 阅读全文
posted @ 2020-03-19 16:22 HeapDump性能社区 阅读(1025) 评论(0) 推荐(1) 编辑
摘要: 概述 本文其实一直都想写,因为各种原因一直拖着没写,直到开公众号的第一天,有朋友再次问到这个问题,这次让我静心下来准备写下这篇文章,本文有些东西是我自己的理解,比如为什么JDK一开始要这么设计,初衷是什么,没怎么去找相关资料,所以只能谈谈自己的理解,所以大家看到文章之后可以谈谈自己的看法,对于实现部 阅读全文
posted @ 2020-03-18 10:07 HeapDump性能社区 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 概述 前段时间公司有个系统的进程老是无故退出,在客户那边好好的,在家里服务器上老是出现,而且出现的时间也没啥规律,当然最终查出来还是有规律的,不过这个规律比较特别。大家看了后面的内容之后就明白了,真的很特殊! 初步分析 进程Crash? 当同事找到我的时候,我第一反应是是不是进程Crash了,如果是 阅读全文
posted @ 2020-03-12 10:58 HeapDump性能社区 阅读(760) 评论(2) 推荐(0) 编辑
摘要: 概述 jstat是hotspot自带的工具,和java一样也位于JAVA_HOME/bin下面,我们通过该工具可以实时了解当前进程的gc,compiler,class,memory等相关的情况,具体我们可以通过jstat -options来看我们到底支持哪些类型的数据,譬如JDK8下的结果是: -c 阅读全文
posted @ 2020-03-10 15:37 HeapDump性能社区 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 概述 本文要说的内容是今天公司有个线上系统踩了一个坑,并且貌似还造成了一定的影响,后来系统相关的人定位到了是java.lang.Class.getMethods返回的顺序可能不同机器不一样,有问题的机器和没问题的机器这个返回的方法列表是不一样的,后面他们就来找到我求证是否jdk里有这潜规则 本来这个 阅读全文
posted @ 2020-03-03 22:08 HeapDump性能社区 阅读(479) 评论(1) 推荐(0) 编辑
摘要: 概述 上篇文章讲了JVM在GC上的一个设计缺陷,揪出一个导致GC慢慢变长的JVM设计缺陷,可能有不少人还是没怎么看明白的,今天准备讲的大家应该都很容易看明白 本文其实很犹豫写不写,因为感觉没有太多值得探索的东西,不过文末估计会给你点小惊喜 或许大家曾经都碰到过HashMap因为其非线程安全的多线程并 阅读全文
posted @ 2020-02-27 17:43 HeapDump性能社区 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 概述 OutOfMemoryError,说的是java.lang.OutOfMemoryError,是JDK里自带的异常,顾名思义,说的就是内存溢出,当我们的系统内存严重不足的时候就会抛出这个异常(PS:注意这是一个Error,不是一个Exception,所以当我们要catch异常的时候要注意哦), 阅读全文
posted @ 2020-02-25 11:39 HeapDump性能社区 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 今天的这个案例我觉得应该会让你涨姿势吧,不管你对JVM有多熟悉,看到这篇文章,应该还是会有点小惊讶的,不过我觉得这个案例我分享出来,是想表达不管多么奇怪的现象请一定要追究下去,会让你慢慢变得强大起来,我对奇怪现象一直充满好奇,所以你碰到些奇怪的问题也可以发给我,当然最好是JVM相关的 问题 因为编辑 阅读全文
posted @ 2020-02-20 10:52 HeapDump性能社区 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 概述 本文重点讲述毕玄大师在其公众号上发的一个GC问题一个jstack/jmap等不能用的case,对于毕大师那篇文章,题目上没有提到GC的那个问题,不过进入到文章里可以看到,既然文章提到了jstack/jmap的问题,这里也简单回答下jstack/jmap无法使用的问题,其实最常见的场景是使用js 阅读全文
posted @ 2020-02-13 17:25 HeapDump性能社区 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 概述 首先还是把问题抛给大家,这个问题也是我厂同学在做一个性能分析产品的时候碰到的一个问题。 同一个类加载器对象是否可以加载同一个类文件多次并且得到多个Class对象而都可以被java层使用吗 请仔细注意上面的描述里几个关键的词 同一个类加载器:意味着不是每次都new一个类加载器对象,我知道有些对类 阅读全文
posted @ 2020-02-11 17:20 HeapDump性能社区 阅读(229) 评论(0) 推荐(0) 编辑