在与窗体上的一个按钮,下列OnButton事件代码的简单的Delphi VCL应用:
procedure TForm1.Button1Click(Sender: TObject);
var
OpenDialog : TFileOpenDialog;
begin
OpenDialog := TFileOpenDialog.Create(nil);
try
OpenDialog.Options := OpenDialog.Options + [fdoPickFolders];
if not OpenDialog.Execute then
exit;
finally
OpenDialog.Free;
end;
end;
当我执行我的对话框应用程序的内存使用量多于双打,但在我OpenDialog.Free
内存不会被释放。(我使用ProcessExplorer看到我的应用程序使用多少内存)
我怎样才能让这个后,我释放对象内存利用率返回到它以前我所谓的对话?
这是正常操作。内存管理器通常不会返回内存给系统,而是缓存起来以后再使用。此外,显示一个文件对话框,在第一次加载模块在过程中保持加载。
这是完全有可能的是,系统缓存等资源,以提高文件对话框的后续使用性能。
此行为将导致更好的性能。是你要能够强制内存返回到系统中,你的程序将执行速度变慢。
你的代码是正确的。有没有泄漏。还有为你解决没有问题。