红鱼儿

图文解说使用madExcept检测内存泄漏

madExcept的官网在这里,先去看一下http://www.madshi.net/,这么好的控件竟然是免费的,赞一个!下载回来http://madshi.net/madCollection.exe,开始安装.

1.运行madCollection,选择madExcept 5,如下图,然后点击Install:

 

2. 出现license界面,选择Accept license,点Continue

3.输入yes,点Continue

 

4.选择安装目录,点Install。图省事,我就用默认的。

 

5.显示这个界面,安装完成:

 

接下来,看看如何使用madExcept检测内存泄漏:

1.新建一个VCL项目,然后在Project菜单中选择madExcept settings...

 

进入madExcept设置界面:

 

选择OK,看一下项目源代码,madExcept为项目增加了代码,以mad为前缀的几个单元:

program Project3;

uses
  madExcept,
  madLinkDisAsm,
  madListHardware,
  madListProcesses,
  madListModules,
  Vcl.Forms,
  Unit2 in 'Unit2.pas' {Form2};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

运行,再关闭项目,会出下面的提示,没有泄漏:

手工造一个泄漏:

procedure TForm2.Button1Click(Sender: TObject);
var
  b:TButton;
begin
  b:=TButton.Create(nil);
end;

建立个按钮对象,不释放他,运行,点Button1三次,退出项目:

 

这是显示的内存泄漏!可以看出TButton对象,泄漏了三次!

上面的操作,没有写一行代码,仅通过为项目设置madExcept,就实现了内存泄漏检测。

我们还可以用代码,随时控制检测,引用madExcept单元,然后用代码:

感谢朋友007及黑夜杀手!

有朋友问,是否支持fmx项目,答案是肯定的,支持!

Delphi 10.4.1+madExcept 5.1

 

posted on 2021-01-18 08:19  红鱼儿  阅读(3622)  评论(5编辑  收藏  举报