GC

0 人感兴趣 · 29 次引用

  • 推荐
  • 最新
https://static001.geekbang.org/infoq/85/8567770ca7505d0e7cb9488bfd235531.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 对象的锁状态和同步

用户头像
程序那些事 2020 年 7 月 24 日

锁和同步是java多线程编程中非常常见的使用场景。为了锁定多线程共享的对象,Java需要提供一定的机制来实现共享对象的锁定,从而保证一次只有一个线程能够作用于共享对象。当第二个线程进入同一个区域的时候,必须等待第一个线程解锁该对象。

https://static001.geekbang.org/infoq/ef/ef6506e88927f73b43f34f328eaac83a.png?x-oss-process=image/resize,w_416,h_234

YGC 问题排查,又让我涨姿势了!

用户头像
AI乔治 2020 年 9 月 20 日

在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。

https://static001.geekbang.org/infoq/98/98b1960dfd3c1159bfe297d4328791f8.jpeg?x-oss-process=image/resize,w_416,h_234

Go 语言内存管理三部曲(三)图解 GC 算法和垃圾回收原理

用户头像
Kev 2020 年 10 月 22 日

白话Go语言的垃圾回收机制、图解Go语言GC的三色标记清楚算法。

https://static001.geekbang.org/infoq/c8/c85a6c435ac30f3b4e6c5186286196e2.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列 - 读懂 GC 日志

用户头像
Rayjun 2020 年 7 月 25 日

学习 JVM 从认识 GC 日志开始

JVM 垃圾回收器 G1

用户头像
Alex🐒 2020 年 7 月 22 日

G1 收集器是一款面向服务端应用的垃圾收集器,主要针对多 CPU 以及大容量内存的场景,在缩短 STW 的同时,具备高吞吐的特征(大概率)。在启动 JVM 参数加上 -XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200 启用 G1 作为垃圾回收器。

JVM 垃圾回收器 CMS

用户头像
Alex🐒 2020 年 7 月 22 日

CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的老年代垃圾回收器,基于“标记-清除”算法的“多线程”垃圾回收。对于要求服务器响应速度的交互式应用,这种垃圾回收器非常适合。在启动 JVM 参数加上 -XX:+UseConcMarkSweepGC 启

https://static001.geekbang.org/infoq/0f/0f95b291a966ebbb3720afe3d28b376d.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 参数手册

用户头像
Rayjun 2020 年 8 月 1 日

有时候找到了一个JVM参数,以为找到了一份武林秘籍,就偷偷在服务器把参数加上,结果第二天就收获一个事故通报。

https://static001.geekbang.org/infoq/ed/ed905b2739b46005ab6acdec19ea2fa4.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:String.intern 的性能

用户头像
程序那些事 2020 年 7 月 28 日

String对象有个特殊的StringTable字符串常量池,为了减少Heap中生成的字符串的数量,推荐尽量直接使用String Table中的字符串常量池中的元素。

https://static001.geekbang.org/infoq/c4/c4877ab8dc9be5a4e244f6b69631fab7.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:GC 的垃圾回收算法

用户头像
程序那些事 2020 年 6 月 16 日

JVM的重要性不言而喻了,如果把java的应用程序比作一辆跑车,那么JVM就是这辆车的发动机,没有它,java程序就成了空中楼阁,无根浮萍。而在JVM中有一块内存区域叫做运行时数据区域,存储了运行时所需要的所有对象,而Heap Area则是其中最大的一块。

https://static001.geekbang.org/infoq/d0/d0caedc4aefc435cdc814dd8a2bbab06.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 详解之: 运行时常量池

用户头像
程序那些事 2020 年 7 月 16 日

JVM在运行的时候会对class文件进行加载,链接和初始化的过程。class文件中定义的常量池在JVM加载之后会发生什么神奇的变化呢?快来看一看吧。

https://static001.geekbang.org/infoq/64/641931b58c248ad95d2731c1262fe009.jpeg?x-oss-process=image/resize,w_416,h_234

如果你想写自己的 Benchmark 框架

用户头像
程序那些事 2020 年 7 月 11 日

使用过JMH的同学一定会惊叹它的神奇。JMH作为一个优秀的Benchmark框架带给了我们无数的欢乐。作为一个有极客精神的程序员,那么有没有想过去自己实现一个Benchmark框架呢?

https://static001.geekbang.org/infoq/32/32fcdbe1f80df0035596e5c2a03b1bca.jpeg?x-oss-process=image/resize,w_416,h_234

一张 PDF 了解 JDK10 GC 调优秘籍 - 附 PDF 下载

用户头像
程序那些事 2020 年 7 月 14 日

JDK10 GC调优秘籍,一张PDF就能搞定的事情,还不快来看看!

https://static001.geekbang.org/infoq/10/10e6a3492dba55bdc9db1986d77eda81.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 详解之: 类的加载链接和初始化

用户头像
程序那些事 2020 年 8 月 1 日

有了java class文件之后,为了让class文件转换成为JVM可以真正运行的结构,需要经历加载,链接和初始化的过程。

https://static001.geekbang.org/infoq/de/debf714e4198b914068713f2a32c78c8.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 详解之:java class 文件的密码本

用户头像
程序那些事 2020 年 7 月 15 日

一切的一切都是从javac开始的。从那一刻开始,java文件就从我们肉眼可分辨的文本文件,变成了冷冰冰的二进制文件。

https://static001.geekbang.org/infoq/10/10b13314b2e640db77b47fd51e4ac93a.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:String.intern 和 stringTable

用户头像
程序那些事 2020 年 7 月 26 日

StringTable是什么?它和String.intern有什么关系呢?在字符串对象的创建过程中,StringTable有起到了什么作用呢?

https://static001.geekbang.org/infoq/44/449f23b088273909b5fcdffd65e109de.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:Contend 注解和 false-sharing

用户头像
程序那些事 2020 年 7 月 23 日

现代CPU为了提升性能都会有自己的缓存结构,而多核CPU为了同时正常工作,引入了MESI,作为CPU缓存之间同步的协议。MESI虽然很好,但是不当的时候用也可能导致性能的退化。

https://static001.geekbang.org/infoq/28/28f8c303fb2eb97b6a3bfa29422ae6b0.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之: 详解 java object 对象在 heap 中的结构

用户头像
程序那些事 2020 年 7 月 20 日

在之前的文章中,我们介绍了使用JOL这一神器来解析java类或者java实例在内存中占用的空间地址。

https://static001.geekbang.org/infoq/6a/6ac836e4f65e26f9b6e3f857ebb52298.jpeg?x-oss-process=image/resize,w_416,h_234

小师妹学 JVM 之:JVM 中的 Safepoints

用户头像
程序那些事 2020 年 7 月 8 日

java程序员都听说过GC,大家也都知道GC的目的是扫描堆空间,然后将那些标记为删除的对象从堆空间释放,以提升可用的堆空间。今天我们会来探讨一下隐藏在GC背后的一个小秘密Safepoints。

https://static001.geekbang.org/infoq/10/102501d21121362ba3e3f89fd02c1faa.jpeg?x-oss-process=image/resize,w_416,h_234

一文了解 JDK12 13 14 GC 调优秘籍 - 附 PDF 下载

用户头像
程序那些事 2020 年 7 月 25 日

想了解JDK12,13,14中的GC调优秘籍吗?想知道这三个版本中JVM有什么新的变化吗?

https://static001.geekbang.org/infoq/a6/a6b79151ef660c6e82e872f198559703.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 中栈的 frames 详解

用户头像
程序那些事 2020 年 7 月 10 日

我们知道JVM运行时数据区域专门有一个叫做Stack Area的区域,专门用来负责线程的执行调用。那么JVM中的栈到底是怎么工作的呢?快来一起看看吧。

https://static001.geekbang.org/infoq/47/476609c357a46e39a6724e452881213d.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 详解之:HotSpot VM 中的 Intrinsic methods

用户头像
程序那些事 2020 年 7 月 30 日

内置方法是什么呢?它和inline method有什么关系呢?内置方法是怎么实现的呢?所有的问题都可以在本文找到答案。

https://static001.geekbang.org/infoq/1e/1ed5be6c632acc1882acbaee03f9799c.jpeg?x-oss-process=image/resize,w_416,h_234

一张 PDF 了解 JDK11 GC 调优秘籍 - 附 PDF 下载

用户头像
程序那些事 2020 年 7 月 22 日

JDK11相比JDK10,添加了一个新的Source-File Mode,可以直接通过java来运行单个java源文件,而不需要进行编译。同时还提供了新的HTTP API,支持响应性stream。

https://static001.geekbang.org/infoq/d6/d6cfb4c61dd059ee903ec34b10bcdaea.png?x-oss-process=image/resize,w_416,h_234

解 Bug 之路 - 记一次 JVM 堆外内存泄露 Bug 的查找

用户头像
无毁的湖光 2020 年 9 月 15 日

JVM的堆外内存泄露的定位一直是个比较棘手的问题。此次的Bug查找从堆内内存的泄露反推出堆外内存,同时对物理内存的使用做了定量的分析,从而实锤了Bug的源头。笔者将此Bug分析的过程写成博客,以飨读者。

https://static001.geekbang.org/infoq/c0/c0a57068a34d4002bdec84d9d0df061d.jpeg?x-oss-process=image/resize,w_416,h_234

JVM 系列之:String, 数组和集合类的内存占用大小

用户头像
程序那些事 2020 年 7 月 21 日

之前的文章中,我们使用JOL工具简单的分析过String,数组和集合类的内存占用情况,这里再做一次更详细的分析和介绍,希望大家后面再遇到OOM问题的时候不再抱头痛哭,而是可以有章可循,开始吧。

https://static001.geekbang.org/infoq/0c/0cb4f4d0c85f40bb8ee498b1427c97fd.gif?x-oss-process=image/resize,w_416,h_234

一次线上 JVM 调优实践,FullGC40 次 / 天到 10 天一次的优化过程

用户头像
AI乔治 2020 年 10 月 15 日

通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。

https://static001.geekbang.org/infoq/9e/9e488e7ec952fd29434684194468c5b4.jpeg?x-oss-process=image/resize,w_416,h_234

年轻代频繁 ParNew GC,导致 http 服务 rt 飙高

用户头像
AI乔治 2020 年 10 月 15 日

某日下午大约四点多,接到合作方消息,线上环境,我这边维护的某http服务突然大量超时(对方超时时间设置为300ms),我迅速到鹰眼平台开启采样,发现该服务平均QPS到了120左右,平均RT在2秒多到3秒,部分毛刺高达5到6秒(正常时候在60ms左右)。

https://static001.geekbang.org/infoq/71/71023d6095c2e2ed792ecc89376d5172.jpeg?x-oss-process=image/resize,w_416,h_234

为你总结了 N 个真实线上故障,从容应对面试官!

用户头像
AI乔治 2020 年 10 月 27 日

很多人在面试时,会被问到这样的问题:遇到过什么系统故障?怎么解决的?下面是笔者根据自己15年互联网研发经历总结的多个线上故障真实案例。相信可以帮你从容应对面试官的提问!

https://static001.geekbang.org/infoq/cd/cdd2062b7779a439c5f46d15eb2b3569.jpeg?x-oss-process=image/resize,w_416,h_234

频繁操作本地缓存导致 YGC 耗时过长

用户头像
AI乔治 1 小时前

某天,某位群友在JVM讨论群里发来一张GC log的图片。

GC_GC资料文章-InfoQ写作平台