首页
学习
活动
专区
工具
TVP
发布

涤生的博客

专注各种互联网技术分享,Java、Netty、JVM、中间件等。 欢迎关注。
专栏作者
47
文章
85018
阅读量
14
订阅数
JVM 内存分析神器 MAT: Incoming Vs Outgoing References 你真的了解吗?
了解 Eclipse MAT 中 incoming and outgoing 引用之间的区别。
涤生
2019-10-30
7.8K0
G1 GC:一个神奇的 JVM 参数,减少你的内存消耗
现代 Java 应用程序有大量的字符串操作,例如,Web 服务 API 调用(JSON、REST、SOAP 等)、外部数据源调用(SQL、从 DB 返回的数据等)以及文本解析和文本创建等。因此,字符串对象很容易就占据了约至少 30% 的内存。然而,这些 String 对象中的大多数都是重复的,这些字符串的重复浪费了大量内存。因此,优化重复字符串对象浪费的内存是 Java 非常受欢迎的功能之一。在 G1 中,Java 就对此功能做了支持。
涤生
2019-10-08
11K0
简单的 HTTP 调用,为什么时延这么大?
最近项目测试遇到个奇怪的现象,在测试环境通过 Apache HttpClient 调用后端的 HTTP 服务,平均耗时居然接近 39.2ms。可能你乍一看觉得这不是很正常吗,有什么好奇怪的?其实不然,我再来说下一些基本信息,该后端的 HTTP 服务并没有什么业务逻辑,只是将一段字符串转成大写然后返回,字符串长度也仅只有 100 字符,另外网络 ping 延时只有 1.9ms 左右。因此,理论上该调用耗时应该在 2-3ms 左右,但为什么平均耗时 39.2ms 呢?
涤生
2019-07-17
1.2K0
讨论在 Linux Control Groups 中运行 Java 应用程序的暂停问题
本篇原文来自 LinkedIn 的 Zhenyun Zhuang,原文:Application Pauses When Running JVM Inside Linux Control Groups[1],在容器化的进程中,或多或少会给现有应用程序带来一些问题,这篇文章讲的是 LinkedIn 在使用 cgroups 构建容器化产品过程中,发现资源限制策略对 Java 应用程序性能会产生一些影响,文章深入分析问题根本原因,并给出解决方案。笔者看过后,觉得非常赞,因此翻译后献给大家,希望对大家有帮助。
涤生
2019-05-15
2.2K0
讨论在 Linux Control Groups 中运行 Java 应用程序的暂停问题
本篇原文来 LinkedIn 的 Zhenyun Zhuang,原文:Application Pauses When Running JVM Inside Linux Control Groups[1],在容器化的进程中,或多或少会给现有应用程序带来一些问题,这篇文章讲的是 LinkedIn 在使用 cgroups 构建容器化产品过程中,发现资源限制策略对 Java 应用程序性能会产生一些影响,文章深入分析问题根本原因,并给出解决方案。笔者看过后,觉得非常赞,因此翻译后献给大家,希望对大家有帮助。
涤生
2019-05-15
2K0
一次 Netty 堆外内存泄露问题排查
最近在做一个基于 websocket 的长连中间件,服务端使用实现了 socket.io 协议(基于websocket协议,提供长轮询降级能力) 的 netty-socketio 框架,该框架为 netty 实现,鉴于本人对 netty 比较熟,并且对比同样实现了 socket.io 协议的其他框架,这个框架的口碑要更好一些,因此选择这个框架作为底层核心。
涤生
2019-05-14
1.8K0
Java 堆外内存回收原理
DirectByteBuffer 这个类是 JDK 提供使用堆外内存的一种途径,当然常见的业务开发一般不会接触到,即使涉及到也可能是框架(如 Netty、RPC 等)使用的,对框架使用者来说也是透明的。
涤生
2019-05-07
9220
Java 堆外内存回收原理
DirectByteBuffer 这个类是 JDK 提供使用堆外内存的一种途径,当然常见的业务开发一般不会接触到,即使涉及到也可能是框架(如 Netty、RPC 等)使用的,对框架使用者来说也是透明的。
涤生
2019-04-24
1.1K0
系统优化总结—帮你剖析系统问题
之前组内一位大佬分享了一些关于系统性能优化方面的干货,这里我将它整理成文并且加入自己平时常用的一些工具和技巧。由于关于系统性能优化涉及的内容非常多,我会分几篇文章来分享。这次分享下定位系统层面问题的常用方法。
涤生
2018-08-14
9020
Long Polling长轮询详解
众所周知,数据交互有两种模式:Push(推模式)、Pull(拉模式)。 推模式指的是客户端与服务端建立好网络长连接,服务方有相关数据,直接通过长连接通道推送到客户端。其优点是及时,一旦有数据变更,客户端立马能感知到;另外对客户端来说逻辑简单,不需要关心有无数据这些逻辑处理。缺点是不知道客户端的数据消费能力,可能导致数据积压在客户端,来不及处理。 拉模式指的是客户端主动向服务端发出请求,拉取相关数据。其优点是此过程由客户端发起请求,故不存在推模式中数据积压的问题。缺点是可能不够及时,对客户端来说需要考虑数据拉取相关逻辑,何时去拉,拉的频率怎么控制等等。
涤生
2018-08-14
2.2K0
没有更多了
社区活动
RAG七天入门训练营
鹅厂大牛手把手带你上手实战
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档