FastMM4,Delphi6,TApplication泄漏?

FastMM4,Delphi6,TApplication泄漏?,第1张

概述我用D6检查了FastMM4. 当我使用“Forms”调试一个简单的应用程序时,我每次都有3行内存泄漏. This application has leaked memory. The small block leaks are (excluding expected leaks registered by pointer): 13 – 20 bytes: TObjectList x 3, Unk 我用D6检查了FastMM4.
当我使用“Forms”调试一个简单的应用程序时,我每次都有3行内存泄漏.

This application has leaked memory.
The small block leaks are (excluding
expected leaks registered by pointer):

13 – 20 bytes: TObjectList x 3,
UnkNown x 3 29 – 36 bytes:
TWinHelpVIEwer x 1 37 – 52 bytes:
THelpManager x 1

这是正常的吗?

哪件事导致了这个?

谢谢:
  DD

解决方法 Delphi 6附带的RTL / VCL包含一些内存泄漏.在Delphi的后续版本中,使用FastMM导致从RTL / VCL中删除这些内存泄漏.

您需要做的是使用FastMM注册这些已知和预期的内存泄漏.一旦您注册了FastMM将不会报告它们的泄漏.虽然这些泄漏是真实的,但出于各种原因,它们最好被忽略:

>这些已知VCL泄漏的泄漏记忆很小,并且在过程的生命周期内不会增长.
>无论如何,只要进程终止,内存就会返回系统.
>由于泄漏是在您无法控制的代码中,因此您无法做到这一点.您可以修复它们并使用您自己版本的VCL单元,但值得吗?

这些泄漏可能最重要的唯一一次是,如果您在该过程的生命周期中有一个DLL在相同的进程中加载​​和卸载了数千次.我不相信这是一个非常现实的场景.

如果您没有注册泄漏,那么FastMM泄漏报告在很大程度上是无效的,因为它每次都会显示.如果每次你学会忽略它就会显示出来.这种泄漏报告非常有价值,但只有当它显示您可以控制的泄漏时才有价值.

在我的Delphi 6项目中,我在.dpr文件中有以下代码:

// Register expected VCL memory leaks caused by Delphi unit HelpIntfs.FastMM4.RegisterExpectedMemoryLeak(36,2); // THelpManager x 1,THTMLHelpVIEwer x 1FastMM4.RegisterExpectedMemoryLeak(20,7); // TObjectList x 3,THelpSelector x 1,UnkNown x 3FastMM4.RegisterExpectedMemoryLeak(52);    // TWinHelpVIEwer x 1

我还在TForm后代中有以下内容,我的应用程序中的所有表单都从该后代下降:

var  ExpectedHelpStringMemoryLeakRegistered: Boolean;procedure TMyForm.WMHelp(var Message: TWMHelp);begin  if not (biHelp in borderIcons) and not ExpectedHelpStringMemoryLeakRegistered then begin    // Register expected VCL memory leaks caused by Delphi unit HelpIntfs.    FastMM4.RegisterExpectedMemoryLeak(44); // TString x 1    ExpectedHelpStringMemoryLeakRegistered := True;  end;  inherited;end;

根据您在RTL / VCL中使用的确切单位以及如何使用它们,您可能需要注册不同的内存泄漏.

总结

以上是内存溢出为你收集整理的FastMM4,Delphi6,TApplication泄漏?全部内容,希望文章能够帮你解决FastMM4,Delphi6,TApplication泄漏?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1268888.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存