自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 收藏
  • 关注

原创 分代 ZGC 的“分代”,和 G1 根本不是一回事——实测停顿仅 G1 的 1_1300

分代 ZGC 的"分代"是逻辑分代,不是物理分代——年轻代和老年代不是两块物理内存,而是对象的年龄和元数据划分。分代 ZGC 的年轻代回收是并发的,不是 STW——这是它和 G1/Parallel/CMS 最本质的区别。传统分代 GC 靠"STW 收小年轻代"缩短停顿,分代 ZGC 靠"并发收年轻代"做到亚毫秒停顿。两者分代的动机不同。

2026-11-09 22:22:02 76

原创 JDK 25 AOT 缓存实测:Spring Boot 启动快 2.4 倍,一行代码不改

AOT 缓存是给「秒级启动敏感」场景省钱的:serverless 冷启动、K8s 滚动发布、微服务快速就绪。它对长驻服务的峰值吞吐没有提升。如果你的服务启动要 5 秒以上、又在意启动/扩容速度,JDK 25 的 AOT 缓存几乎是无成本收益——解压 fat jar、跑一次训练、加个启动参数,启动就能快 2 倍多。如果服务本来 500ms 就起来了、又常年长驻,那这功能对你基本无用。

2026-11-08 11:55:55 213

原创 JDK 8 的profiling会触发进程crash,社区无修复,建议升级jdk

那份 hs_err 出现在凌晨。一个 Spark 任务的 Executor 挂了,机器上留下几十兆日志。前面几千行都是正常的 GC 记录,翻到最底下才看见那行。调度器把任务拉起来接着跑,第二天早上看结果,数据是全的,只有中间那十几分钟空着。集群上装了 Pyroscope 的 agent,每半分钟抓一次火焰图。崩的那一次,正好是它去 dump 的时候。这台机器 325 秒里做了 82 次 Full GC,堆和 Metaspace 一直在反复收拾,agent 就在这个节奏里反复调。最后那次,没回来。

2026-11-07 17:42:29 171

原创 实测了 JDK 25 的紧凑对象头:堆省 19%,GC 暂停降 33%

紧凑对象头实测:省内存降停顿

2026-08-15 16:51:27 257

原创 JDK 8 升 25,代码一行不改,性能能翻几倍?

摘要:实测显示JDK 25相比JDK 8在36项基准测试中实现显著性能提升,最高达9.4倍(SHA-256)。关键改进包括字符串拼接优化、数学函数加速、排序算法升级及JIT逃逸分析的质变(4项测试被完全消除)。启用对象头压缩后,内存密集型场景额外获得8%-118%提升。这些改进源于多个JEP的叠加效应,如JEP 280(字符串拼接)、JEP 348(数学intrinsic)等,表明仅升级JDK即可获得可观的免费性能红利。

2026-08-09 21:12:40 302

原创 java伪共享问题的稳定解法

用户咨询了一个java中cpu缓存伪共享场景, 他通过padding多个long 字段隔离 2 个volatile字段,但是实测效果没有提升。这是个比较有趣的场景,在 jdk8 有更稳定的方案去解决伪共享带来的性能问题。下面我们展开介绍。

2026-06-25 23:08:12 236

原创 G1 释放物理内存,避免长期无效占用内存

在 G1 的使用中,重点关注如下参数同时考虑自己的真实场景,要避免短时间内频繁的申请和释放物理内存。相关链接。

2026-06-25 23:04:22 223

原创 gc触发crash,根因却是unsafe

遇到 crash 的堆栈在 gc的情况,应该现换个 gc 来看看是否是 gc 的 bug。确认是对象模型被破坏的场景,我们可以通过缩小范围+记录 unsafe 堆栈的方式追踪根因栈。追踪堆栈方案按照方便程度程度排序 jdk23>jdk11>jdk8社区已经有替换 unsafe api 的方案,替换方案,可以绕开unsafe 引发的 crash。相关链接。

2026-06-25 22:36:24 244

原创 慢半拍的 Flink TaskManager——问题不在代码中

回头看这个排查过程,从 Flink 指标面板一路追到 CPU 频率。堆内存和 GC 次数的差异是「高频低利用率」和「低频高利用率」的副产品,不是原因。很多人走到这里就会开始调 GC 参数,试图让两边的内存曲线对齐。但方向已经错了。火焰图差分显示热点代码等比率增长,说明不是某条分支路径在拖后腿。JIT 编译等级一样,JDK 版本一样,应用层和 JVM 层已经排除。最后两行perf stat的输出摆在面前——2.545 GHz vs 3.055 GHz,差距接近 20%。

2026-06-25 22:14:35 388

原创 aot从入门到实战

aot介绍aot是Ahea...

2021-01-01 21:23:00 9572

原创 cli

「深度学习福利」大神带你进阶工程师,立即查看>>> ...

2020-08-09 14:42:00 293

原创 jvm内存诊断全集

jvm内存诊断一直是一个强需求,大家能马上想到mat等工具,在诊断heap,metaspace,直接内存上是有奇效。但是介绍能解决jvm的一部分问题。下面就来一套,全面诊断的方式。利用...

2020-08-01 16:53:00 624

原创 jstack遇到Unable to open socket file……

精选30+云产品,助力企业轻松上云!>>> 大家使用...

2020-07-18 23:12:00 9670

原创 java是如何做资源回收补救的

精选30+云产品,助力企业轻松上云!>>> 学习ja...

2020-07-04 17:17:00 201

原创 跟着sleep看jvm线程变化

精选30+云产品,助力企业轻松上云!>>> jvm线...

2020-06-29 07:41:00 224

原创 vscode 配置

精选30+云产品,助力企业轻松上云!>>> win+...

2020-06-27 14:46:00 149

原创 aot上手

aot介绍aot是Ahead-Of-Time的缩写,以前大家都知道java的一个定位就是半编译,半解释型语言。他把java文件编译成class文件,最后jvm解释执行class文件,jv...

2020-05-24 15:30:00 735

原创 jcmd

3 月,跳不动了?>>> jcmd pid VM.u...

2020-03-21 22:49:00 169

原创 idea

properties中文不会自动进行unicode转码project settings - File Encoding列编辑alt+capslk(大小写切换)+鼠标左键 ...

2020-03-10 23:00:00 162

原创 try-with-resource从入门到使用

try-with-resource是从java7开始提供的新特性。方便了我们资源的代码编写。下面展示一下代码模板的对比没有try-with-resourcetry{ 资源打开 业务...

2020-03-02 23:23:00 1257

原创 记录java锁等待的时间

java中synchronized锁是语言层面实现的锁,也是我们比较常用的一种。经过jdk层面的优化,这个关键字在重入锁的层面已经和ReentrantLock接近,而且有更丰富的场景(锁膨...

2020-03-02 23:21:00 1043

原创 c++常用方法

数字转stringto_string(xx);string到数值stoi:string 到 intstol: string 到 longstoll:string 到 long...

2020-02-29 15:48:00 282

原创 mybatis

list<if test=“xx!=null and xx.size()>0"></if>集合遍历<foreach collection="x...

2020-02-15 21:57:00 146

原创 maven

把依赖也加入jar包方法1 <plugin> <groupId>org.apache.maven.plugins</groupId> ...

2020-01-28 22:15:00 146

原创 idea插件

Free Mybatis pluginMaven HelperKey promoterRestfulTookiturl查找GsonFormat根据json自动产生java类...

2020-01-28 21:09:00 168

原创 java直接内存

为什么80%的码农都做不了架构师?>>> ...

2019-06-23 16:41:00 307

原创 gc调优我们到底在调整什么

为什么80%的码农都做不了架构师?>>> ...

2019-06-23 16:38:00 355

原创 CountDownLatch详解

开发十年,就只剩下这套架构体系了!>>> ...

2019-01-27 15:43:00 242

原创 从classloader的变更说起

开发十年,就只剩下这套架构体系了!>>> ...

2019-01-13 10:03:00 195

原创 消失的线程

很多小伙伴都问过我一个问题,就是任务线程跑着跑着消失了,而且没有任何异常日志。我都是条件反射式的回复,是不是用了线程池的submit提交任务。而且很大几率对方给予肯定答复。解决方案,很多人都听过不少,下面我就分析一下原因以及最佳实践。为什么消失submit这个单词用的真的特别好,特别洋气...

2018-12-31 13:45:00 231

原创 grafana 批量添加图表

利用grafana做监控展示特别方便,而且界面还很有科技感,一般的使用都是自己手动添加图表,或者使用别人提供好的模板。在一种情况下就比较尴尬了,我有100个实例的内存数据想展示,如果都放在一个table上,就特别的乱,互相覆盖,不能只管的展示,如果是1个实例一个table就很繁琐,明明相似的...

2018-12-31 13:37:00 1045

原创 登录的演进

随着技术的迭代和变更,登录模块的也有了很多的变化,今天就主要来说说这个问题。javawebjavaweb时代是学校教学的一部分,他是使用了servlet来进行编程,有的教学会使用一些框架,例如springmvc。里面的登录案例都是使用session来做的。第一次登录做检验,如果成功,就把登...

2018-12-25 00:40:00 207

原创 钉钉扫码登录

开发十年,就只剩下这套架构体系了!&gt;&gt;&gt;    ...

2018-11-22 13:50:00 2024 3

原创 聊聊LinkedHashMap

什么样的经历,才能领悟成为架构师?&gt;&gt;&gt;    ...

2018-11-12 13:55:00 268

原创 优雅的给线上环境打补丁

开发十年,就只剩下这套Java开发体系了&gt;&gt;&gt;    ...

2018-11-06 00:45:00 309

原创 从classloader说起

开发十年,就只剩下这套Java开发体系了&gt;&gt;&gt;    ...

2018-10-31 20:39:00 205

原创 从hashmap说起

开发十年,就只剩下这套Java开发体系了&gt;&gt;&gt;    ...

2018-10-26 21:18:00 135

原创 aqs速读

开发十年,就只剩下这套Java开发体系了&gt;&gt;&gt;    ...

2018-10-26 14:07:00 208

原创 jmx的垃圾回收器次数揭秘

对于jmx提供的垃圾回收器的次数,很多人的疑问点都是老年代的回收次...

2018-10-10 14:22:00 577

原创 kafka之重复消费数据

在进入主题之前,我们先思考一个问题。问题kafka消费者使用...

2018-10-07 19:43:00 2390

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除