惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
J
Java Code Geeks
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
腾讯CDC
D
DataBreaches.Net
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
V
V2EX
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Tailwind CSS Blog
Jina AI
Jina AI
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
About on SuperTechFans
酷 壳 – CoolShell
酷 壳 – CoolShell
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
U
Unit 42
B
Blog
M
MIT News - Artificial intelligence
N
Netflix TechBlog - Medium

博客园 - ScorpioLove

一个小题目 1000 的阶乘有几位数? - 后续, 求解 终于又能登录了 [转] vim 中关于 tab 的使用技巧 ASCII Table 排列组合 模拟"九连环"的小算法 1000 的阶乘有几位数? 总结一下最近做得事 Debian 下安装 Java 开发环境 Debian etch 下安装配置支持 CJK 的 tex 系统 行频、场频与分辨率、刷新率 一些 Java 语言的基础细节 Some good articles for me Vim 命令 Big Integer Multiplication [转]Debian/Ubuntu下tetex3的gbk字体配置方法 - giv@kyxk.net [转]FVWM的配置文件 - archerC@kyxk.net I do
[面试]内存泄漏查找位置
ScorpioLove · 2007-01-11 · via 博客园 - ScorpioLove

刚进一个项目组, 不熟悉代码, 产品跑个三四天就报内存不够, 肯定是 code 里面有问题, 怎么找到问题的所在?

-- 找 static 的東西,特別是 static 的 Collection。

-- 是不是因为 GC 忽略 static 的内容?

   -- 這個是肯定的,程序員很容易就犯錯誤,比較常見的就是 singleton 的 manager 問題,有些 static 的 Collection,往裏麵 put 了,卻沒有 remove,還是 static 的……

   -- 不是 gc 忽略 static 的内容。因为 static 的 collection 的生命周期和程序的运行周期一样长,如果在 static 的 collection 中有其他对象的引用,那么 gc 就永远不会收集里面的内容,即使在其他地方也没有用到了。很经典的内存泄漏就是在 Stack 的设计中,弹出一个 element 的时候,没有把其中的引用置为 NULL。在缓存设计中也会有这个问题,解决类似问题的一个办法是采用弱引用。

-- 找那些 singleton 會找出點東西

-- 一般的 Java 里面内存泄露都与 Collection 有关,常见的可能是 map 里面放了太多的东西,不用的时候又没有 remove 掉;所以 Java 里面有 WeakHashMap 这个类以及相关的一些类、接口