java GC
文章平均质量分 81
茅坤宝骏氹
语言:Java、C/C++、C#、Python、Linux Shell。
框架:Spring、Spring MVC、Spring Boot、Spring Cloud、Hibernate、Mybatis、Freemarker、Velocity。
前端:HTML5、CSS3、JavaScript、Bootstrap、JQuery、Vue、React。
数据库:oracle、mysql、MongoDB、HBase。
缓存:Memcache、Redis。
消息队列:kafka。
大数据:Hadoop、Hive、Sqoop、Flume、Spark、Strom、OpenTSDB、Druid。
展开
-
jvm系列(九):如何优化Java GC
转载自 jvm系列(九):如何优化Java GC「译」本文翻译自Sangmin Lee发表在Cubrid上的"Become a Java GC Expert"系列文章的第三篇《How to Tune Java Garbage Collection》,本文的作者是韩国人,写在JDK 1.8发布之前,虽然有些地方有些许过时,但整体内容还是非常有价值的。译者此前也看到有人翻译了本文,发现其中有许多错漏生...转载 2018-04-22 22:26:09 · 209 阅读 · 0 评论 -
Java GC系列(1):Java垃圾回收简介
转载自 Java GC系列(1):Java垃圾回收简介这篇教程是系列第一部分。首先会解释基本的术语,比如JDK、JVM、JRE和HotSpotVM。接着会介绍JVM结构和Java 堆内存结构。理解这些基础对于理解后面的垃圾回收知识很重要。Java关键术语JavaAPI:一系列帮助开发者创建Java应用程序的封装好的库。Java 开发工具包 (JDK):一系列工具帮助开发者创建Java应用程序。J...转载 2018-06-12 08:45:48 · 224 阅读 · 0 评论 -
Java GC系列(4):垃圾回收监视和分析
转载自 Java GC系列(4):垃圾回收监视和分析在这个Java GC系列教程中,让我们学习用于垃圾回收监视和分析的工具。然后,选用一种工具来监视一个Java示例程序的垃圾回收过程。如果你是一名初学者,你最好仔细阅读该系列教程。你可以从这里(垃圾回收介绍)开始。Java GC监视和分析工具下面是一些可用的工具,每个都有自己的优势和缺点。我们可以通过选择正确的工具并分析,来提升应用程序的性能。这...转载 2018-06-12 08:46:27 · 392 阅读 · 0 评论 -
JVM 调优和垃圾回收器说明
转载自 JVM 调优和垃圾回收器说明JVM垃圾收集算法 JVM垃圾收集算法有四种:标记-清除算法、复制算法、标记-整理算法、分代收集算法 标记-清除算法: 该算法如同它的名字一样,分为两个阶段:标记、清除。首先标记出所有需要回收的对象,然后,统一清除这些被标记的对象。该算法的缺点是:1、效率不高;2、产生大量不连续的内存碎片,导致有大量内存剩余的情况下,由于,没有...转载 2018-07-11 12:39:52 · 274 阅读 · 0 评论 -
深入JVM虚拟机(四) Java GC收集器
转载自 深入JVM虚拟机(四) Java GC收集器1 GC收集器1.1 Serial串行收集器串行收集器主要有两个特点:第一,它仅仅使用单线程进行垃圾回收;第二,它独占式的垃圾回收。在串行收集器进行垃圾回收时,Java 应用程序中的线程都需要暂停(“StopThe World”),等待垃圾回收的完成,这样给用户体验造成较差效果。虽然如此,串行收集器却是一个成熟、经过长时间生产环境考验的极为高效...转载 2018-07-11 12:40:03 · 944 阅读 · 0 评论 -
JVM GC参数以及GC算法的应用
转载自 JVM GC参数以及GC算法的应用1. 串行收集器串行收集器是最古老,最稳定以及效率高的收集器可能会产生较长的停顿,只使用一个线程去回收-XX:+UseSerialGC新生代、老年代使用串行回收新生代复制算法老年代标记-压缩 串行收集器的日志输出:0.844: [GC 0.844: [DefNew: 17472K->2176K(19648K), 0.0188339 secs] 1...转载 2018-07-11 12:39:34 · 127 阅读 · 0 评论 -
Java的GC机制及算法
转载自 Java的GC机制及算法GC的阶段 对每个对象而言,垃圾回收分为两个阶段:finalization和reclamation。 finalization: 指运行这个对象的finalize的方法。reclamation: 回收被这个对象使用的内存。GC的过程的基本步骤 首先确认对象是不可达的,即将被回收。其次,如果对象有finalize方法,那么对象被添加进finalization qu...转载 2018-07-11 12:38:48 · 266 阅读 · 0 评论 -
JVM内存管理------垃圾搜集器参数精解
转载自 JVM内存管理------垃圾搜集器参数精解垃圾搜集器选择参数 UseSerialGC:开启此参数使用serial & serial old搜集器(client模式默认值)。 UseParNewGC:开启此参数使用ParNew & serial old搜集器(不推荐)。 UseConcMarkSweepGC:开启此...转载 2018-06-12 08:51:37 · 540 阅读 · 0 评论 -
JVM内存管理------垃圾搜集器精解
转载自 JVM内存管理------垃圾搜集器精解引言 在上一章我们已经探讨过hotspot上垃圾搜集器的实现,一共有六种实现六种组合。本次LZ与各位一起探讨下这六种搜集器各自的威力以及组合的威力如何。 为了方便各位的观看与对比,LZ决定采用当初写设计模式时使用的方式,针对某些搜集器,分几个维度去解释这些搜集器。 client模式与server模式 ...转载 2018-06-12 08:51:49 · 187 阅读 · 0 评论 -
JVM内存管理------GC算法精解(复制算法与标记/整理算法)
转载自 JVM内存管理------GC算法精解(复制算法与标记/整理算法) 本次LZ和各位分享GC最后两种算法,复制算法以及标记/整理算法。上一章在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算法 我们首先一起来看一下复制算法的做法,复制算法将内存划分为两个区间,在任意时间点,所有动态分配的对象...转载 2018-06-12 08:51:59 · 328 阅读 · 0 评论 -
JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)
转载自 JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧。不过LZ丑话说前面哦,这篇文章应该能让各位彻底理解标记/清除算法,不过倘若各位猿友不能在五分钟内看完,那就不是LZ的错啦。 好了,前面只是小小开个玩笑,让各位猿友放松下心情。下面即将与各位分享的,是G...转载 2018-06-12 08:52:09 · 167 阅读 · 0 评论 -
JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)
转载自 JVM内存管理------GC算法精解(五分钟教你终极算法---分代搜集算法)引言 何为终极算法? 其实就是现在的JVM采用的算法,并非真正的终极。说不定若干年以后,还会有新的终极算法,而且几乎是一定会有,因为LZ相信高人们的能力。 那么分代搜集算法是怎么处理GC的呢? 对象分类 上一章已经说过,分代搜集算法是针对对象...转载 2018-06-12 08:52:22 · 154 阅读 · 0 评论 -
搞定 JVM 垃圾回收就是这么简单
转载自 搞定 JVM 垃圾回收就是这么简单JVM的垃圾回收机制是Java中比较重要的知识点,也是面试官常考的问题,本文主要围绕以下面试题来讲解JVM的垃圾回收机制。问题答案在文中都有提到 如何判断对象是否死亡(两种方法)。 简单的介绍一下强引用、软引用、弱引用、虚引用(虚引用与软引用和弱引用的区别、使用软引用能带来的好处)。 如何判断一个常量是废弃常量 ...转载 2018-10-08 19:27:54 · 170 阅读 · 0 评论 -
深入浅出 Java CMS 学习笔记
转载自深入浅出 Java CMS 学习笔记引子带着问题去学习一个东西,才会有目标感,我先把一直以来自己对CMS的一些疑惑罗列了下,希望这篇学习笔记能解决掉这些疑惑,希望也能对你有所帮助。1、 CMS出现的初衷、背景和目的?2、 CMS的适用场景?3、 CMS的trade-off是什么?优势、劣势和代价4、 CMS会回收哪个区域的对象?5、 CMS的GC R...转载 2019-03-24 11:27:39 · 400 阅读 · 1 评论 -
Java GC系列(3):垃圾回收器种类
转载自 Java GC系列(3):垃圾回收器种类在这篇教程中我们将学习几种现有的垃圾回收器。在Java中,垃圾回收是一个自动的进程可以替代程序员进行内存的分配与回收这些复杂的工作。这篇是垃圾回 收教程系列的第三篇,在前面的第2部分我们看到了在Java中垃圾回收是如何工作的,那是篇有意思的文章,我推荐你去看一下。第一部分介绍了Java的垃 圾回收,主要有JVM体系结构,堆内存模型和一些Java术语...转载 2018-06-12 08:46:15 · 157 阅读 · 0 评论 -
Java GC系列(2):Java垃圾回收是如何工作的
转载自 Java GC系列(2):Java垃圾回收是如何工作的本教程是为了理解基本的Java垃圾回收以及它是如何工作的。这是垃圾回收教程系列的第二部分。希望你已经读过了第一部分:《Java 垃圾回收介绍》。Java 垃圾回收是一项自动化的过程,用来管理程序所使用的运行时内存。通过这一自动化过程,JVM 解除了程序员在程序中分配和释放内存资源的开销。启动Java垃圾回收作为一个自动的过程,程序员...转载 2018-06-12 08:46:00 · 217 阅读 · 0 评论 -
jvm系列(六):Java服务GC参数调优案例
转载自 jvm系列(六):Java服务GC参数调优案例本文介绍了一次生产环境的JVM GC相关参数的调优过程,通过参数的调整避免了GC卡顿对JAVA服务成功率的影响。这段时间在整理jvm系列的文章,无意中发现本文,作者思路清晰通过步步分析最终解决问题。我个人特别喜欢这种实战类的内容,经原作者的授权同意,将文章分享于此。备注部分为本人添加,主要起到说明的作用。背景以及遇到的问题我们的Java HTT...转载 2018-04-22 22:03:42 · 247 阅读 · 0 评论 -
jvm系列(五):Java GC 分析
转载自 jvm系列(五):Java GC 分析Java GC就是JVM记录仪,书画了JVM各个分区的表演。什么是 Java GCJava GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自...转载 2018-04-22 21:57:29 · 298 阅读 · 0 评论 -
jvm系列(三):GC算法 垃圾收集器
转载自 jvm系列(三):GC算法 垃圾收集器 概述垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。 jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,...转载 2018-04-22 21:43:54 · 186 阅读 · 0 评论 -
什么是G1垃圾回收算法
转载自 什么是G1垃圾回收算法为解决CMS算法产生空间碎片和其它一系列的问题缺陷,HotSpot提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数 -XX:+UseG1GC来启用,该算法在JDK 7u4版本被正式推出,官网对此描述如下:The Garbage-First (G1) collector is a server-style garbage collector,...转载 2018-05-07 10:25:49 · 4155 阅读 · 0 评论 -
Java中的垃圾回收与对象生命周期
转载自 Java中的垃圾回收与对象生命周期1. 垃圾回收 垃圾回收是Java程序设计中内存管理的核心概念,JVM的内存管理机制被称为垃圾回收机制。 一个对象创建后被放置在JVM的堆内存中,当永远不再引用这个对象时,它将被JVM在堆内存中回收。被创建的对象不能再生,同时也没有办法通过程序语句释放它们。即当对象在JVM运行空间中无法通过根集合到达(找到)时,这个对象被称为垃圾对象。根集合...转载 2018-07-11 12:38:37 · 345 阅读 · 0 评论 -
JVM-对象的存活与死亡
转载自 JVM-对象的存活与死亡当Java虚拟机进行垃圾收集的时候,那么它必须要先判断对象,是否还存活,如果存活就不能对它进行回收。所以判断一个对象是否存活是Java虚拟机必须要实现的。1.对象是否存活 1)引用计数器:给对象添加一个引用计数器,每当有一个地方引用他时,计数器值就加一,当引用失效时,计数器值就减一。任何时刻计数器为零的对象就是不可在被使用的。 分析:客观的说,引用计数器算法(...转载 2018-07-10 00:07:59 · 235 阅读 · 0 评论 -
Java中对象的三种状态
转载自 Java中对象的三种状态Java中的对象的三种状态是和垃圾回收紧密相关的,因此有必要深究。状态一:可触及态:从根节点开始,可以搜索到这个对象,也就是可以访问到这个对象,也有人将其称为可达状态。状态二:可复活态:从根节点开始,无论如何都不能访问到这个对象,也就是说这个对象的所有引用都被释放,没有任何变量引用该对象了, 但是该对象有可能在finalize()方法中再次...转载 2018-07-10 00:07:42 · 2039 阅读 · 0 评论 -
JVM初探- 使用堆外内存减少Full GC
转载自 JVM初探- 使用堆外内存减少Full GC问题: 大部分主流互联网企业线上Server JVM选用了CMS收集器(如Taobao、LinkedIn、Vdian), 虽然CMS可与用户线程并发GC以降低STW时间, 但它也并非十分完美, 尤其是当出现Concurrent Mode Failure由并行GC转入串行时, 将导致非常长时间的Stop The World(详细可参考JVM初探-...转载 2018-07-10 00:07:34 · 484 阅读 · 0 评论 -
认识JVM--第一篇-对象分配&回收算法
转载自 认识JVM--第一篇-对象分配&回收算法本来标题党想写成《深入JVM》,不过不太敢写,我想一小篇博客我想还不足以说明JVM,在本文中,会就我所知给大家介绍JVM的很多内部知识,概念会相对较粗,因为太细的内容要写,这里肯定写不出来;本文主要偏重理论,没有什么实践,中间除一些官方资料外,还有部分自身的理解,所以请大家不要完全信任本文内容;另外本文会有一小部分纠正以前一篇文章对于in...转载 2018-07-10 00:06:37 · 244 阅读 · 0 评论 -
JVM 调优系列之图解垃圾回收
转载自 JVM 调优系列之图解垃圾回收摘要: jvm必知系列,总结一些常见jvm回收机制,方便查阅从这篇开始我们开始探讨一些jvm调优的问题。在jvm调优中一个离不开的重点是垃圾回收,当垃圾回收成为系统达到更高并发量的瓶颈时,我们就需要对jvm中如果进行“自动化”垃圾回收技术实施必要的监控和调节。对于调优之前,我们必须要了解其运行原理,java 的垃圾收集Garbage Collection 通...转载 2018-07-10 00:06:27 · 207 阅读 · 0 评论 -
Java 9 中的 GC 调优基础
转载自 Java 9 中的 GC 调优基础在经过了几次跳票之后,Java 9终于在原计划日期的整整一年之后发布了正式版。Java 9引入了很多新的特性,除了闪瞎眼的Module System和REPL,最重要的变化我认为是默认GC(Garbage Collector)修改为新一代更复杂、更全面、性能更好的G1(Garbage-First)。JDK的维护者在GC选择上一直是比较保守的,G1从JD...转载 2018-07-07 09:44:40 · 613 阅读 · 0 评论 -
JVM 内存分代、垃圾回收漫谈
转载自 JVM 内存分代、垃圾回收漫谈这篇主要简单分享一下关于 JVM 内存模型、内存溢出、内存分代、以及垃圾回收算法的相关知识。如果这篇文章让你对相关知识产生了兴趣而意犹未尽,推荐去阅读周志明老师的《深入理解Java虚拟机》。JVM 内存区域这里也简单罗列一下 JVM 的五部分程序计数器这是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器,线程私有。Java 虚拟机栈它...转载 2018-07-11 12:40:22 · 213 阅读 · 0 评论 -
Java 内存区域和GC机制
转载自 Java 内存区域和GC机制Java垃圾回收概况 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代 码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,该机制对 JVM(Java V...转载 2018-06-12 08:51:16 · 154 阅读 · 0 评论 -
可能是最全面的 Java G1学习笔记
转载自可能是最全面的 Java G1学习笔记引子最近遇到很多朋友过来咨询G1调优的问题,我自己去年有专门学过一次G1,但是当时只是看了个皮毛,因此自己也有不少问题。总体来讲,对于G1我有几个疑惑,希望能够在这篇文章中得到解决。 G1出现的初衷是什么? G1适合在什么场景下使用? G1的trade-off是什么? G1的详细过程? 如何理解G1...转载 2019-05-04 12:56:49 · 427 阅读 · 0 评论