图文解说使用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