关于DELPHI内存释放的疑问!

啥都得学呀 2009-06-16 09:10:09
最近做了一个项目,出现内存不释放的问题,希望大家帮忙!

我先说说现象!

程序正常运行,线程什么的,该关闭也关闭了,但是内存只增不减,但是变态的地方出现了,如果我把窗体最大化一下,或者最小化一下,内存马上就释放掉,如果窗体不动,内存就不释放。原因分析不出来……

还有,我为了弄明白问题,我新建一个项目,什么都不做,直接点运行。发现内存会吃到5M大,如果最小化一下,马上就变成了几百K,然后在最大化一下,发现内存最多占用1M大左右。

当然,我知道我做的项目肯定有问题,但怎么解决呢?我看过很多东西,都释放掉了,怎么还站内存呢?非要窗体刷新下才没么?


十分不理解,请高手赐教!!!
...全文
430 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
socal15 2011-11-01
  • 打赏
  • 举报
回复
楼主这个问题最后怎么解决了呢?
lyong925911 2010-04-13
  • 打赏
  • 举报
回复
兄弟,我也遇到了这个问题。 内存一直增加。只要最大或最小一下。内存就下来了。
真不知道是什么问题。
Seamour 2009-06-16
  • 打赏
  • 举报
回复
你在个地方看的?是不是windows任务管理器?看不懂话么?
如果是的话,你就别继续瞎猜了
啥都得学呀 2009-06-16
  • 打赏
  • 举报
回复
是这样的,我的项目,刚启动的时候,只占8M大的内存(这个时候最大化,最小化后,内存会到2M左右,忽略不计)
但是,一直使用下去,内存会吃到上百M大,这个时候,如果你最大化,最小化下,内存还能释放到几M大&&&&
Seamour 2009-06-16
  • 打赏
  • 举报
回复
没说你是从哪看的,别人怎么知道你看的结果对不对
你要说看的xp的任务管理器里进程页的“内存占用”,那只能说那个数字和你想象的不一样
最大化最小化本来就对内存占用没影响,你猜的这个所谓“内存占用”的变化就是我说的那样
DelphiFans 2009-06-16
  • 打赏
  • 举报
回复
程序最小化,会默认进行内存整理
lbx408 2009-06-16
  • 打赏
  • 举报
回复
不大明白LZ指的不释放到底是什么情况
如果只是窗体变化后,内存占用也变化,应该是正常的啊,这是windows的内存管理机制。
delphi下随便一个form都会占点内存的,如果不是内存一直持续不断的往上增的话,应该没什么问题
啥都得学呀 2009-06-16
  • 打赏
  • 举报
回复
我没这么认为,但是,的确是这样的事情!
窗体只要最大化或者最小化后,内存占有还原成正常的大小了啊!


这个应用程序存在内存泄露. 小内存块的泄露有 (不包括已按指针注册的预知泄露):

5 - 12 字节: TIdThreadSafeInteger x 1
21 - 36 字节: TIdCriticalSection x 2

这个是INDY 10自带的内存泄漏?不需要考虑的么??
Seamour 2009-06-16
  • 打赏
  • 举报
回复
从哪看的?taskmgr.exe进程标签中的“内存使用”栏?你以为page out就是“释放内存”么?
啥都得学呀 2009-06-16
  • 打赏
  • 举报
回复
FASTMM是全称么?

我下载一个看看,关键变态的地方,是窗体最大化或者最小化一下,内存就没了,如果窗体不动,就只增不减。如果是内存泄漏,应该不是这样的吧!


是D7!
liangpei2008 2009-06-16
  • 打赏
  • 举报
回复
是D7吗?
有没有尝试用FASTMM来找一下泄露的语句
Seamour 2009-06-16
  • 打赏
  • 举报
回复
还怎么了?不都讲了好几遍了么,你前面都是瞎猜,怎么听懂个话这么费劲?
那个“内存占用”除了有些没搞懂的人吃饱了撑的拿它忽悠小白以外,一点儿意义都没有
啥都得学呀 2009-06-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 Seamour 的回复:]
你在哪个地方看的?是不是windows任务管理器?看不懂话么?
如果是的话,你就别继续瞎猜了
[/Quote]

是资源管理器啊! 怎么了啊?

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧