社区
Delphi
帖子详情
对象释放。。。什么是内存泄露?
wwzhong1
2004-04-30 05:45:19
我自定义的类。用它创建对象后。使用完毕,没有去释放它。有人跟我说‘程序关闭时会把这个对象的内存空间释放掉?’。但是从书上知道。自己创建的对象要自己释放。否则就是内存泄漏了。到底是谁对呀?
...全文
86
13
打赏
收藏
对象释放。。。什么是内存泄露?
我自定义的类。用它创建对象后。使用完毕,没有去释放它。有人跟我说‘程序关闭时会把这个对象的内存空间释放掉?’。但是从书上知道。自己创建的对象要自己释放。否则就是内存泄漏了。到底是谁对呀?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fj218
2004-04-30
打赏
举报
回复
最好是手动释放,程序关闭虽然能够释放,但不一定都能全部安全释放。
所以自己创建的自己一定释放,这也是良好的习惯。
Bellamy
2004-04-30
打赏
举报
回复
最好是你自己创建了,就要把它释放掉!
lijinghe1
2004-04-30
打赏
举报
回复
如果写服务程序,每一次的内存分配都应有一个try finally end结构去释放它。由对象的OWNER去释放是很不保险的。一般的MIS系统,差不多就可以了。
whitetiger8
2004-04-30
打赏
举报
回复
都对啊。哈哈。不过关闭程序时,会把内存释放,如果他一直不关闭程序呢?!!
这是一种不好的习惯。!
TomSonChina
2004-04-30
打赏
举报
回复
如果你创建的时候他的所有者是一个对象,那么那个对象释放的时候可以给你释放,但是不推荐这样。
如果你创建的时候没有指定他的所有者,那么你必须自己释放,否则就有内存泄漏Memory Leak
比如:MyObject:=TMyObject.Create(Form1);那么Form1释放时也会释放你的对象(但是不推荐)
MyObject:=TMyObject.Create(nil);是不会释放你的对象的,你必须自己释放
内存泄漏(Memory Leak):
你在程序中分配的内存没有回收回来,导致那块内存被无用的信息永远占用,如果你的程序多次运行,每次都有内存泄漏,则会导致操作系统的可用内存越来越少,从而使你计算机的可用资源越来越少,计算机越来越慢。
比如上面所说的情况就有可能内存泄漏。
rockswj
2004-04-30
打赏
举报
回复
如果创建的对方的owner释放,则对象被释放。
不过真的不好说清楚。最好自己释放。
Erice
2004-04-30
打赏
举报
回复
D 是释放不干净的
aiirii
2004-04-30
打赏
举报
回复
很難說得清楚, 反正,自己創建的, 就自己釋放, 這樣安全點
jinjazz
2004-04-30
打赏
举报
回复
人快走光了..我也匿
fim
2004-04-30
打赏
举报
回复
书上说得对,自己创建的对象要自己释放
静态创建的对象由Delphi负责处理
liyu001xj
2004-04-30
打赏
举报
回复
都是对的,这是不同方面的问题。
jinjazz
2004-04-30
打赏
举报
回复
自己创建的对象要自己释放
好像delphi不会自动回收
wwzhong1
2004-04-30
打赏
举报
回复
争得好累呀?休息几天再回来。
内存泄露
Demo leaky app
内存泄露
Demo leaky app
什么是内存泄漏?什么是野指针?什么是内存越界?如何避免?
内存泄漏 百度百科上的定义:内存泄漏(Memory Leak)是指程序中己动态分配的堆内存由于某种原因程序未
释放
或无法
释放
,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果。 一看定义,坑好像更多了,动态分配,堆内存是什么? 某种原因包含哪种原因? 未
释放
我能理解,无法
释放
是什么时候 看后果很严重,运行速度减慢!系统崩溃!那么内存究竟为什么这么强?? 危害举了一个例子,比如服务...
什么是内存泄漏?如何避免内存泄漏?
内存泄漏:通常是由于程序的设计问题导致的,比如忘记
释放
已经不再使用的内存,或者引用已不需要的
对象
,使得这部分内存无法被回收。内存溢出:产生通常是因为程序申请的内存超出了系统能够提供的范围,比如试图创建一个超大的数组或
对象
,超过了系统或虚拟机的限制。内存泄漏:需要找到程序中导致内存泄漏的部分,然后修复这些问题,比如及时
释放
不再使用的内存,或者取消对不再需要的
对象
的引用。内存溢出:是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于能提供的最大内存。
什么是
内存泄露
?该怎么排查?Java内存泄漏策略
什么是内存泄漏 内存泄漏:
对象
已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着。 在Java中,内存泄漏就是存在一些被分配的
对象
,这些
对象
有下面两个特点,首先,这些
对象
是可达的,即在有向图中,存在通路可以与其相连;其次,这些
对象
是无用的,即程序以后不会再使用这些
对象
。如果
对象
满足这两个条件,这些
对象
就可以判定为Java中的内存泄漏,这些
对象
不会被GC所回收,然而它却占用内存。 在C++中,内存泄漏的范围更大一些。有些
对象
被分配了内存空间,然后却不可达,由于C++中没有GC
什么是内存泄漏?
原文 1 内存泄漏的定义 内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能
释放
已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在
释放
该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。 内存泄漏通常情况下只能由获得程序源代码的程序员才能分析出来。 2 内存泄漏导致的后果 内存泄漏会因为减少可用内存的数量从而降低计算机的性能。最终,在最糟糕的情况下,过多的可用内存被分配掉导致全部或部分设备停止正常工作,或者应用程序崩
Delphi
5,930
社区成员
262,943
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章