有趣的"内存泄漏"

简介: 有趣的"内存泄漏"

说明

今天的文章比较短,基本上全在视频里了。

这是一份有意思的 “内存泄漏” 视频。加上引号是因为虽然可以称作内存泄漏,但是又算不上真正意义上的内存泄漏。因为虽然短时间内内存暴增,但终归还是能释放掉的。

其实,这个 “内存泄漏” 背后隐藏着一个序列化/反序列化的 bug。很早之前就碰到了这个问题,只不过当时并没有录下来。当时的情况比现在更加明显——内存很快的从 1 GB 增长到 5 GB 左右,然后再释放掉,再增长,再释放,如此往复。不像这次,增长到 4 GB 多的时候,会有一个比较长的停留,然后才释放。

这个问题的根本原因是序列化与反序列化不匹配导致的。在特定环境下定位并解决这种问题是相对容易的,因为问题范围很小,而且对相关源码比较熟悉。具体排除过程没什么好说的。

其实,定位这种问题可以像我在视频里那样用 process explorer 的线程查看功能,粗略查看一下原因。运气好的话,基本可以很快定位。

话不多说,欣赏视频吧!注意视频中红色箭头和红色方框高亮的部分。

相关文章
|
1天前
|
监控 NoSQL Java
遇到内存泄漏
遇到内存泄漏
31 0
|
1天前
|
缓存 算法 Java
容易发生内存泄漏的八个场景,你都知道吗?
容易发生内存泄漏的八个场景,你都知道吗?
|
1天前
|
存储 Java Android开发
内存泄露
内存泄露
14 2
内存泄露
|
1天前
|
存储 C++
什么是内存泄漏?如何避免内存泄漏?
什么是内存泄漏?如何避免内存泄漏?
28 0
AcDbRegion::createFromCurves 引起的内存泄露
AcDbRegion::createFromCurves 引起的内存泄露
|
9月前
|
IDE Java 开发工具
什么是内存溢出,什么是内存泄漏?
什么是内存溢出,什么是内存泄漏?这是很多小伙伴经常问我的一个问题,今天花3分钟时间给大家介绍一下。先来介绍什么是内存溢出?
122 0
|
9月前
|
缓存 JavaScript Java
什么是内存泄漏?什么原因会导致呢?
什么是内存泄漏?什么原因会导致呢?
57 0
|
缓存 数据库 Android开发
内存泄漏那些事
内存泄漏那些事
113 0
内存泄漏那些事
|
存储 缓存 Java
小心内存泄漏
7 消除过期的对象引用 这一条建议主要讲的是要规避内存泄漏。因为像Java这种具有垃圾回收机制的语言,内存泄漏一般都是比较隐蔽的。
小心内存泄漏
http://www.vxiaotou.com