51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 5612|回复: 0
打印 上一主题 下一主题

[原创] 隐式内存泄漏的常见原因

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-12-18 09:26:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<TABLE style="WIDTH: 648pt; BORDER-COLLAPSE: collapse" cellSpacing=0 cellPadding=0 width=864 border=0 x:str>
<COLGROUP>
<COL style="WIDTH: 648pt; mso-width-source: userset; mso-width-alt: 31597" width=864>
<TBODY>
<TR style="HEIGHT: 192.75pt" height=257>
<TD class=xl27 style="BORDER-RIGHT: #e0dfe3; BORDER-TOP: #e0dfe3; BORDER-LEFT: #e0dfe3; WIDTH: 648pt; BORDER-BOTTOM: #e0dfe3; HEIGHT: 192.75pt; BACKGROUND-COLOR: transparent" width=864 height=257>
<P><FONT size=2><FONT face=宋体>内存泄漏(memory leak)是导致内存溢出(outOfMemory)的原因,通常的内存泄漏是指对象生命周期完结后,改对象的引用空间没有释放,常见于C.而java有GC机制不存在内存泄漏问题,但是隐式的(perceived)内存泄漏还是有的:</FONT></FONT></P>
<P><FONT class=font7><STRONG><FONT face=宋体 size=2>1.Hash tables</FONT></STRONG></FONT><FONT class=font6><BR><FONT face=宋体 size=2>&nbsp;&nbsp; 任何存放在Hashtables中的对象如果不显示的remove,该对象不会被GC回收。<BR></FONT></FONT><FONT class=font7 face=宋体 size=2><STRONG>2.Static class data</STRONG></FONT></P>
<P><STRONG><FONT face=宋体 size=2></FONT></STRONG><FONT class=font6>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从来不会被回收<BR></FONT><FONT class=font7 face=宋体 size=2><STRONG>3.JNI references</STRONG></FONT></P>
<P><FONT face=宋体 size=2><STRONG>&nbsp;&nbsp;</STRONG>GC无法追踪本地代码的引用,因此只能显示回收。</FONT><FONT class=font6><BR></FONT><FONT class=font7 face=宋体 size=2><STRONG>4.Objects with finalizers</STRONG></FONT></P>
<P><FONT class=font6>&nbsp;&nbsp;&nbsp;&nbsp;Finalizer 是单独运行在一个线程里,所以对象不一定会被回收。<FONT face=宋体 size=2><BR></FONT></FONT></P></TD></TR></TBODY></TABLE>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-24 08:31 , Processed in 0.067310 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表