随笔分类 -  JVM

摘要:-XX 开头,这些是 JVM 的所有实现 都支持的 最常用的选项。 bool类型的开关选项(+开启、-关闭) -XX:+UseG1GC 使用G1GC-XX:+PreserveFramePointer 使用FP寄存器来保存帧指针,而不是作为通用寄存器。解决了stack不完整的问题-XX:+PrintG 阅读全文
posted @ 2021-10-28 14:57 leon66666 阅读(526) 评论(0) 推荐(0) 编辑
摘要:一、和CMS对比 G1 CMS 设计原则 首先收集尽可能多的垃圾(Garbage First) 尽可能少而块地执行GC,以停顿时间为目标 垃圾回收时机 启发式算法,在老年代找出具有高收集收益的分区进行收集 内存耗尽(新生代)或者快耗尽(老年代) 内存划分 将内存划分为一个个相等大小的内存分区(Reg 阅读全文
posted @ 2019-07-17 14:52 leon66666 阅读(1954) 评论(0) 推荐(0) 编辑
摘要:一、简介 Concurrent Mark Sweep,是一种以获取最短回收停顿时间为目标的收集器,尤其重视服务的响应速度。 CMS是老年代垃圾回收器,基于标记-清除算法实现。新生代默认使用ParNew收集器,基于复制算法 二、垃圾回收过程 分为四个步骤进行垃圾回收:初始标记,并发标记,重新标记,并发 阅读全文
posted @ 2019-07-15 20:59 leon66666 阅读(3109) 评论(0) 推荐(2) 编辑
摘要:背景 线上服务收到报警,报警内容:虚拟机swap区占用比例超过80%,如图: 本文着重描述排查问题的过程,在这个过程中不断的猜测–>验证–>推翻–>再猜测–>再验证–>再推翻,这个过程更有意思; swap是什么 潜意识中,当进程需要申请内存而机器内存不够时,需要将一部分不常用的进程、数据换出到swa 阅读全文
posted @ 2019-05-15 14:36 leon66666 阅读(1649) 评论(0) 推荐(0) 编辑
摘要:近期遇到一个堆外内存导致swap飙高的问题,这类问题比较罕见,因此将整个排查过程记录下来了 现象描述 最近1周线上服务器时不时出现swap报警(swap超过内存10%时触发报警,内存是4G,因此swap超过400M会触发报警),每次都是童鞋们通过重启tomcat解决的;但导致的根本原因是什么呢?必须 阅读全文
posted @ 2019-05-15 14:20 leon66666 阅读(2872) 评论(0) 推荐(0) 编辑
摘要:一、现象 1、系统稳定运行,偶尔发生响应超时的情况。查看下游依赖服务和数据库状态都良好。超时完全是由于服务本身问题造成的。重启不能解决问题,一直会间隔性的发生超时 二、原因分析 第一种情况,系统内存够用(JVM内存未使用到SWAP内存),但JVM内存不够,最终导致JVM的频繁垃圾回收(FGC),严重 阅读全文
posted @ 2019-05-15 11:50 leon66666 阅读(3791) 评论(0) 推荐(0) 编辑
摘要:jetty的调用场景是:为了支持Servlet规范中的注解方式(使得不再需要在web.xml文件中进行Servlet的部署描述,简化开发流程),jetty在启动时会扫描class、lib包,将使用注解方式声明的Servlet、Listener注册到jetty容器,在扫描jar包的时候调用了infla 阅读全文
posted @ 2019-01-22 16:23 leon66666 阅读(589) 评论(0) 推荐(0) 编辑
摘要:本文首先简单介绍了垃圾收集的常见方式,然后再分析了G1收集器的收集原理,相比其他垃圾收集器的优势,最后给出了一些调优实践。 一,什么是垃圾回收 首先,在了解G1之前,我们需要清楚的知道,垃圾回收是什么?简单的说垃圾回收就是回收内存中不再使用的对象。 垃圾回收的基本步骤 回收的步骤有2步: 1,查找内 阅读全文
posted @ 2019-01-10 16:38 leon66666 阅读(4057) 评论(0) 推荐(0) 编辑
摘要:第一部分 走进Java 一、走进Java 1、概述 java广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,摆脱了硬件平台的束缚,实现了“一次编写,到处运行”的理想 2、java技术体系结构 按照功能来划分 包括以下几个组成部分:Java程序设计语言,各种硬件平台的java虚拟机,Ja 阅读全文
posted @ 2018-04-24 21:05 leon66666 阅读(13003) 评论(1) 推荐(4) 编辑
摘要:Options that begin with -X are non-standard (not guaranteed to be supported on all VM implementations), and are subject to change without notice in su 阅读全文
posted @ 2017-03-20 23:29 leon66666 阅读(6170) 评论(0) 推荐(2) 编辑
摘要:转自:http://blog.csdn.net/lengyuhong/article/details/5953544 近期看了看Java内存泄露的一些案例,跟原来的几个哥们讨论了一下,深入研究发现JVM里面还是有不少以前不知道的细节,这里稍微剖析一下。先看一看JVM的内部结构——如图所示,JVM主要 阅读全文
posted @ 2017-02-20 00:49 leon66666 阅读(1296) 评论(0) 推荐(0) 编辑
摘要:一、先看看编写出的代码的执行过程: 二、研究类加载机制的意义 从上图可以看出,类加载是Java程序运行的第一步,研究类的加载有助于了解JVM执行过程,并指导开发者采取更有效的措施配合程序执行。 研究类加载机制的第二个目的是让程序能动态的控制类加载,比如热部署等,提高程序的灵活性和适应性。 三、类加载 阅读全文
posted @ 2017-02-20 00:22 leon66666 阅读(645) 评论(1) 推荐(0) 编辑

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