从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC | 京东云技术团队
现代的垃圾回收器为了低停顿的目标可谓将“并发”二字玩到极致,Shenandoah在G1基础上做了非常多的优化来使回收阶段并行,而ZGC直接采用了染色指针、NUMA等黑科技,目的都是为了让Java开发者可以更多的将精力放在如何使用对象让程序更好的运行,剩下的一切交给GC,我们所做的只需享受现代化GC技术带来的良好体验。
Wesley13 Wesley13
3年前
JAVA之G1垃圾回收器
概述G1GC,全称GarbageFirstGarbageCollector,通过XX:UseG1GC参数来启用,作为体验版随着JDK6u14版本面世,在JDK7u4版本发行时被正式推出,相信熟悉JVM的同学们都不会对它感到陌生。在JDK9中,G1被提议设置为默认垃圾收集器(JEP248)。在官网中,是这样描述G1的:The
Stella981 Stella981
3年前
Kafka如何通过精妙的架构设计优化JVM GC问题
目录1、Kafka的客户端缓冲机制2、内存缓冲造成的频繁GC问题3、Kafka设计者实现的缓冲池机制4、总结一下“这篇文章,同样给大家聊一个硬核的技术知识,我们通过Kafka内核源码中的一些设计思想,来看你设计Kafka架构的技术大牛,是怎么优化JVM的GC问题的?1、Kafk
Wesley13 Wesley13
3年前
Java 内存泄漏
  Java的一个重要优点就是通过垃圾收集器(GarbageCollection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C不同。  随着越来越多的服
Stella981 Stella981
3年前
Kubernetes GC in V1.3 源码分析
本文是对KubernetesV1.3发布的新GarbageCollector模块的源码解读。实际上本文的是基于kubernetesv1.4的代码进行分析的,和V1.3没有大的改动。GCworker的默认值从V1.3中的5调整为V1.4中的20。阅读本文前,请先阅读KubernetesGCinv1.3(https://www.oschina.
Wesley13 Wesley13
3年前
GC策略&内存申请、对象衰老
      JVM里的GC(GarbageCollection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpotVMGC的种类(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fwww.cnblogs.com%2Fredcreen%2Farchive
Wesley13 Wesley13
3年前
Java垃圾回收机制详解
前言Java相比C/C最显著的特点便是引入了自动垃圾回收(下文统一用GC指代自动垃圾回收),它解决了C/C最令人头疼的内存管理问题,让程序员专注于程序本身,不用关心内存回收这些恼人的问题,这也是Java能大行其道的重要原因之一,GC真正让程序员的生产力得到了释放,但是程序员很难感知到它的存在,这就好比,我们吃完饭后在桌
Stella981 Stella981
3年前
JVM常用命令参数
(1)Xms20M表示设置JVM启动内存的最小值为20M,必须以M为单位  m:memory(2)Xmx20M表示设置JVM启动内存的最大值为20M,必须以M为单位。将Xmx和Xms设置为一样可以避免JVM内存自动扩展。(3)verbose:gc表示输出虚拟机中GC的详细情况(4)Xss128k表示可以设置虚拟机栈的大
Stella981 Stella981
3年前
JVM Parallel Scavenge GC日志详解
ParallelScavenge日志格式XX:PrintGCDetails!(https://oscimg.oschina.net/oscnet/up3a7c7a71782f550660b703d6cbbe1445173.png)GC(AllocationFailure)PSYoungGe
G1垃圾回收参数调优及MySQL虚引用造成GC时间过长分析 | 京东云技术团队
我方有一应用,偶尔会出现GC时间过长(间隔约4小时),导致性能波动的问题(接口最长需要耗时3秒以上)。经排查为G1垃圾回收器参数配置不当叠加MySQL链接超过闲置时间回收,产生大量的虚引用,导致G1在执行老年代混合GC,标记阶段耗时过长导致。以下为对此问题的分析及问题总结。