CMS 是英文 Concurrent Mark-Sweep 的简称,是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种...
以上内容涵盖了2025年Java开发中的核心技术和最佳实践,包括语言新特性、微服务架构、响应式编程、容器化部署等方面。通过这些实战案例,你可以深入理解Java技...
虚拟线程(Virtual Threads)是 Java 19引入的实验性特性(Java 21正式发布) 的轻量级线程,由 JVM直接调度,而非操...
目前使用最多的是 CMS 和 G1 收集器,二者都有分代的概念,主要内存结构如下:
9.Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)
腾讯云TDP | TDP会员 (已认证)
"都说Java程序员有三宝:咖啡、Bug和JVM调不好。" 今天,就让我们走进这个让无数开发者又爱又恨的神秘世界——JVM。它就像程序员界的尼斯湖水怪,人人都听...
2.一个bug导致的FGC(Kafka发送重试 + subList导致List越来越大)
电商平台一般都有几种模式:淘宝这种属于长距离电商,买的东西可能来自于全国各地。京东属于中距离电商,有京东物流,通过最近的仓库发货 ,速度会快点。在此基础上还有近...
注意-XX:MaxTenuringThreshold最大只能是15,因为在底层这个年龄值是用了一个4位的2进制来存储的。
堆内存的大小设置为128M是因为:G1本身的Region都要最小1M,总共就没有几个Region。如果设置成10MB这种值,不好做实验。
在对象分配过程中:如果TLAB不够,就会从Region中扩展新的TLAB。如果Region不够,就会从堆内存的自由分区拿空闲Region。如果自由分区不够,就会...
这个阶段是标记出"在并发标记阶段中没有被标记到的所有对象",这些对象主要就是程序还在运行时产生的一些新对象,会STW。
设置新生代最小值和最大值。注意,在G1里这个最大值最小值其实是可以不设置的。G1会自动计算出一个值:从5%的Region数量开始,慢慢增加到最大为60%的Reg...
G1设计了一套记忆集 + 位图 + 卡表 + DCQ + DCQS机制用来提升垃圾回收的效率
G1除了要考虑垃圾对象回收的效率外,还要考虑对象分配的效率。如果对象分配很慢,那即便对象垃圾回收效率很高,系统性能也不高。
1.G1垃圾回收器的分区(Region大小+G1分区+Region过大过小和计算)
2.Jetty服务器的NIO机制如何导致堆外内存溢出(S区太小 + 禁NIO的显式GC)
3.Metaspace区域内存溢出时应如何解决(OutOfMemoryError: Metaspace)