06 2020 档案

摘要:一、内存溢出 out of memory:(申请的内存空间不够使用) 是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存溢出的方式还有好多种。 二、内存泄露 memory leak:( 阅读全文
posted @ 2020-06-30 20:29 FairyTaleTown 阅读(389) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://mp.weixin.qq.com/s?__biz=Mzg5NDA0ODQ2OQ==&mid=2247483915&idx=1&sn=c83bd02c79e357c3b56387e2c72abeb3&chksm=c024c3b1f7534aa72fa8959fbb599add 阅读全文
posted @ 2020-06-30 20:20 FairyTaleTown 阅读(763) 评论(0) 推荐(0) 编辑
摘要:原文:https://mp.weixin.qq.com/s/bClGUG32QQmdgtnpyo431Q 某Java服务(假设PID=10765)出现了OOM,如何快速定位? Java服务出现OOM,最常见的原因是: (1)内存确实分配过小,内存确实不够用; (2)某一个对象被频繁申请,却没有释放, 阅读全文
posted @ 2020-06-30 20:05 FairyTaleTown 阅读(364) 评论(0) 推荐(0) 编辑
摘要:整体思路: 使用步骤: 首先生成hprof文件并导入MAT: 然后使用mat分析; 一、Mac OS下MAT(Memory Analyzer Tool)安装与启动 原文链接:https://blog.csdn.net/hanchao5272/article/details/93379202 简述MA 阅读全文
posted @ 2020-06-22 15:45 FairyTaleTown 阅读(2972) 评论(0) 推荐(0) 编辑
摘要:https://cloud.tencent.com/developer/article/1452072 jmap jvm自带命令行工具,可用于了解系统运行时的对象分布,常用命令格式如下 jmap常用命令 1.jmap -h 2. jmap -heap 查看java堆的信息以及垃圾回收算法等 示例:j 阅读全文
posted @ 2020-06-22 15:20 FairyTaleTown 阅读(5987) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-06-22 14:30 FairyTaleTown 阅读(0) 评论(0) 推荐(0) 编辑
摘要:Full gc是对新生代,旧生代,以及持久代的统一回收,由于是对整个空间的回收,因此比较慢,系统中应当尽量减少full gc的次数。 如下几种情况下会发生full gc: 旧生代空间不足 持久代空间不足 CMS GC时出现了promotion failed和concurrent mode failu 阅读全文
posted @ 2020-06-19 15:18 FairyTaleTown 阅读(293) 评论(0) 推荐(0) 编辑
摘要:一、GC-常用参数配置 1.通用参数-Xms 堆内存初始大小(默认为物理内存的1/64(<1GB);默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制),是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的快一点,但是也可能会导 阅读全文
posted @ 2020-06-19 13:58 FairyTaleTown 阅读(1661) 评论(0) 推荐(0) 编辑
摘要:调优方法与思路 如何分析系统JVM GC运行状况及合理优化? GC优化的核心思路在于:尽可能让对象在新生代中分配和回收,尽量避免过多对象进入老年代,导致对老年代频繁进行垃圾回收,同时给系统足够的内存减少新生代垃圾回收次数,进行系统分析和优化也是围绕着这个思路展开 1 、分析系统的运行状况 2、 GC 阅读全文
posted @ 2020-06-18 20:03 FairyTaleTown 阅读(186) 评论(0) 推荐(0) 编辑
摘要:一、JVM的垃圾回收器大致分为七种类 新生代收集器:Serial、ParNew、Parallel Scavenge。 老年代收集器:Serial Old、CMS、Parallel Old。 堆内存垃圾收集器:G1。(新生代老年代都能用) 附录: 串行:垃圾回收器(Serial Garbage Col 阅读全文
posted @ 2020-06-18 19:45 FairyTaleTown 阅读(137) 评论(0) 推荐(0) 编辑
摘要:一、 GC日志分析 GC日志是一个很重要的工具,它准确记录了每一次的GC的执行时间和执行结果; 通过分析GC日志可以调优堆设置和GC设置,或者改进应用程序的对象分配模式, 开启的JVM启动参数如下:-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateSta 阅读全文
posted @ 2020-06-18 19:29 FairyTaleTown 阅读(2085) 评论(0) 推荐(1) 编辑
摘要:一、JVM内存区域详解 JVM区域总体分两类,heap区(heap区即堆内存)和非heap区。 堆(Heap)和非堆(Non-heap)内存: 堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。“在JVM中堆之外的内存称为非堆内存(Non-heap mem 阅读全文
posted @ 2020-06-18 19:20 FairyTaleTown 阅读(1313) 评论(0) 推荐(0) 编辑
摘要:一、JDK1.8 JVM运行时数据区域概览 这里介绍的是JDK1.8 JVM运行时内存数据区域划分。1.8同1.7比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久代类似,都是对JVM规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。 二 阅读全文
posted @ 2020-06-18 16:51 FairyTaleTown 阅读(2695) 评论(0) 推荐(0) 编辑
摘要:GC基础原理,涉及调优目标,GC事件分类、JVM内存分配策略、GC日志分析等 java的最大好处是自动垃圾回收,这样就无需我们手动的释放对象空间了,但是也产生了相应的负效果,gc是需要时间和资源的,不好的gc会严重影响系统的性能,因此良好的gc是JVM的高性能的保证。 1 GC调优目标 大多数情况下 阅读全文
posted @ 2020-06-18 16:42 FairyTaleTown 阅读(195) 评论(0) 推荐(0) 编辑
摘要:1 名词解释 可达性分析算法:用于判断对象是否存活,基本思想是通过一系列称为“GC Root”的对象作为起点(常见的GC Root有系统类加载器、栈中的对象、处于激活状态的线程等),基于对象引用关系,从GC Roots开始向下搜索,所走过的路径称为引用链,当一个对象到GC Root没有任何引用链相连 阅读全文
posted @ 2020-06-18 15:56 FairyTaleTown 阅读(1842) 评论(0) 推荐(1) 编辑
摘要:参考文档:https://juejin.im/post/5b6b986c6fb9a04fd1603f4a#heading-18 G1原理及调优 1 G1简介 G1(Garbage-First)是一款面向服务器的垃圾收集器,支持新生代和老年代空间的垃圾收集,主要针对配备多核处理器及大容量内存的机器,G 阅读全文
posted @ 2020-06-18 15:54 FairyTaleTown 阅读(3034) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示