![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
杂谈
文章平均质量分 84
Ares_xb
make java better
展开
-
server.max-http-header-size与OOM不得不说的故事
一开始我以为这会是个很简单的事情,毕竟很多人已经从1.x升级到2.x了,但当运维把测试环境的nacos升级到2.x后没多会涌现了一堆告警,全都是找不到dubbo的服务提供者,我这边立马登到nacos容器中查看,整个nacos的堆已经到了32G,且在一直不停地fullgc过了一会更是健康检查失败被k8s重启了,确认了是堆满了以后这边也是立马dump了一份堆快照到持久卷。看的出来是直接原因是有大量5M的byte数组,然后分析引用发现是tomcat的nio请求对象的消息头,难不成是因为请求的消息头非常大?原创 2024-03-10 16:19:07 · 1533 阅读 · 1 评论 -
2024最新Java性能优化建议 应用 数据库 机器 网络
反射缓存高效随机数高效字符串操作原创 2024-01-25 15:45:05 · 787 阅读 · 0 评论 -
过早优化是万恶之源——聊聊FastThreadLocal的Cache line padding
故事今天就是围绕这一行展开的,众所周知基于时间局部性和空间局部性原理所以当处理器需要加载内存中的数据时,它会加载整个缓存行,而不仅仅是请求的特定数据,缓存行的大小通常是2的幂,例如64字节。而很明显上面的代码就属于第二种,试图通过行填充解决伪共享,看上去好像没什么问题,netty使用各种小技巧的地方也非常多,但这一行在https://github.com/raidyue/netty/commit/ef540815a98dac50769e38b39e5107dc5a313b47 中被改为了。原创 2024-01-15 16:49:48 · 1043 阅读 · 0 评论 -
2024最新Java反射性能优化进阶
反射性能详解原创 2023-12-23 15:42:49 · 1176 阅读 · 0 评论 -
“傻傻”的JAVA编译器
第二反应是计算结果溢出了int值所以导致了这个差异,于是我掏出JMH这个利器准备开始一轮验证,为了避免干扰,构造了不同的测试用例集用于纵向和横向的比较。Java的JIT是个非常有价值的东西,但有的时候它也可能“犯傻”,我们在平时写代码的过程中对于这些点倒也无需刻意去记忆,这本该是编译器自己要做的事情,祝愿Java的编译器越来越好吧。的顺序不一致所有字节码都是相同的,那么这个顺序为什么会有如此大的区别呢?在这里,由于需要保留更多的中间结果,我们观察到更多的“溢出”和对堆栈的更多访问。可以看到字节码上除了。原创 2024-01-03 23:50:11 · 427 阅读 · 0 评论 -
编程浅谈-以一个初出茅庐的Java程序员视角
编者是一个从事Java开发的普通软件攻城狮,迄今为止,粗粗算来不过刚刚进入编程的世界不过两年,但在这两年的光阴里,每当我抬头仰望星空(苦命加班)时脑海里总有这样一个疑问——“什么是编程”?对于这个问题百度百科是这么说的,编程,是编定程序的中文简称,就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解人的意图...原创 2019-06-25 16:43:57 · 763 阅读 · 0 评论