CnPack Forum


 
Subject: 又有内存泄露
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 16:38  Profile | Blog | P.M. 
又有内存泄露

又有内存泄露 ,如下
A memory block has been leaked. The size is: 20
Stack trace of when this block was allocated (return addresses):
20003DAE [sys\system.pas][System][System.@GetMem][2654]
20007AA9 [sys\system.pas][System][System.@NewAnsiString][12429]
20007AD4 [sys\system.pas][System][System.@LStrFromPCharLen][12461]
22133334 [ComDebug.pas][ComDebug][ComDebug.CompGetSymbolText][323]
BC08E0B [SimpleWizards\CnProcListWizard.pas][CnProcListWizard][CnProcListWizard.TCnProcListForm.DoUpdateListView][1573]
50D07A [C:\Projects\Components\Delphi11\PSD40\FastMM4\FullDebugMode DLL\FastMM_FullDebugMode.dpr][FastMM_FullDebugMode][FastMM_FullDebugMode.GetRawStackTrace][317]
D25487 [GETMEM.INC][borlndmm][borlndmm.InitializeMemoryManager][4556]
D25499 [GETMEM.INC][borlndmm][borlndmm.InitializeMemoryManager][4559]
D2614B [borlndmm.pas][borlndmm][borlndmm.Finalization][111]
可能是TCnProcListForm.DoUpdateListView 没有把指针释放掉
delphi关闭时,FastMM 已经写了345M的日志,还在写


终于写完了,616M内存报告

[ 本帖最后由 niaoge 于 2007-7-27 16:44 编辑 ]
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 16:47  Profile | Blog | P.M. 
俺专门给cw找麻烦
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-27 17:09  Profile | Blog | P.M. 
[SimpleWizards\CnProcListWizard.pas][CnProcListWizard][CnProcListWizard.TCnProcListForm.DoUpdateListView][1573]
这个我去找找。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 17:13  Profile | Blog | P.M. 
我在FormDestroy和DoUpdateListView内加了一个循环,好像看不到了,不知道对不对?
for I := FDisplayList.Count-1 downto 0 do
  begin
    FreeMemory(FDisplayList.Objects[I]);
  end;
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-27 17:19  Profile | Blog | P.M. 
在我们的设计中,FDisplayList里头并不持有实际的Object,Object全保存在FElementList中。
可能是FElmentList没释放内部的东西。
Top
Passion (LiuXiao)
管理员
Rank: 9Rank: 9Rank: 9


UID 359
Digest Posts 19
Credits 6812
Posts 3579
点点分 6812
Reading Access 102
Registered 2004-3-28
Status Offline
Post at 2007-7-27 17:22  Profile | Blog | P.M. 
刚我看了下代码,应该是FElementList中没释放。
感谢niaoge帮我们找出了这个错误。
等出了330再帮我们测测。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 17:26  Profile | Blog | P.M. 


QUOTE:
原帖由 Passion 于 2007-7-27 17:22 发表
刚我看了下代码,应该是FElementList中没释放。
感谢niaoge帮我们找出了这个错误。
等出了330再帮我们测测。

不客气,
感谢cw给我们提供这么好的工具,能为cw做点小贡献也应该的
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 18:31  Profile | Blog | P.M. 
还有几处,我以付件的形式发给你,DoUpdateListView那个删了以减少付件大小,
还好,当FastMM刚写日志时(60M左右)幸亏我用记事本打开,然后另存为,不过后面的600多M由于文件太大世上已没有工具能打得开,不过没关系,因为估计全是DoUpdateListView的,

[ 本帖最后由 niaoge 于 2007-7-27 18:33 编辑 ]


Attachment: bds_MemoryManager_EventLog1.rar (2007-7-27 18:31, 153.08 K)
Download count 464
Top
xjw100
灌水科科长
Rank: 3Rank: 3


UID 1476
Digest Posts 0
Credits 134
Posts 74
点点分 134
Reading Access 10
Registered 2005-12-13
Location 桂林
Status Offline
Post at 2007-7-27 21:38  Profile | Blog | P.M. 
不过后面的600多M由于文件太大世上已没有工具能打得开
=========
不会吧,记事本应该可以打开的吧,慢而已吧。
用emditor几个GB的文件都可以打开。速度问题吧。
Top
niaoge
灌水司司长
Rank: 6Rank: 6



UID 9910
Digest Posts 0
Credits 438
Posts 143
点点分 438
Reading Access 10
Registered 2007-4-8
Status Offline
Post at 2007-7-27 22:43  Profile | Blog | P.M. 


QUOTE:
原帖由 xjw100 于 2007-7-27 21:38 发表
不过后面的600多M由于文件太大世上已没有工具能打得开
=========
不会吧,记事本应该可以打开的吧,慢而已吧。
用emditor几个GB的文件都可以打开。速度问题吧。 ...

用记事本提示内存不够,(俺的贱机内存2G)
用vs2005提示out of memory
emditor我没听说过,那616M的txt我删了,不然试一下,

FElmentList在free之前 把指针清空了,确实看不到内存Leak,没看到写内存日志

[ 本帖最后由 niaoge 于 2007-7-27 22:48 编辑 ]
Top
kendling (小冬)
高级版主
Rank: 8Rank: 8
MyvNet


Medal No.1  
UID 703
Digest Posts 5
Credits 978
Posts 580
点点分 978
Reading Access 101
Registered 2005-2-18
Location 广东
Status Offline
Post at 2007-7-30 08:57  Profile | Site | Blog | P.M.  | QQ | Yahoo!
用UltraEdit,关掉临时文件的使用,比你打开1M的文件还要快。




小冬
http://MyvNet.com
Top
shenloqi
灌水处处长
Rank: 4



UID 34
Digest Posts 1
Credits 287
Posts 179
点点分 287
Reading Access 10
Registered 2003-3-15
Status Offline
Post at 2007-7-30 10:06  Profile | P.M. 
PSPad的ANSI版本打开600M的文件也非常快,记事本打开10M已经很慢了
Top
 




All times are GMT++8, the time now is 2024-9-20 00:47

    本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.0.0  © 2001-2006 Comsenz Inc.
Processed in 0.017881 second(s), 8 queries , Gzip enabled

Clear Cookies - Contact Us - CnPack Website - Archiver - WAP