【发布时间】:2016-04-26 04:12:53
【问题描述】:
我正在使用工具MapFileStats 来检查从delphi 生成的地图文件。我发现匿名方法会生成某种元数据,这似乎与 RTTI 无关。它是一种什么样的元数据?删除它会很好,因为在我们的生产环境中,它的总大小非常大。
示例代码:
program RttiDemo;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
{$WEAKLINKRTTI OFF}
var
AProc: TProc;
begin
try
AProc := procedure()
begin
// ...
end;
except
on E: Exception do
WriteLn(E.ClassName, ': ', E.Message);
end;
end.
来自 MapFileStats 的屏幕截图:
另一个例子:
program RttiDemo;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils;
{$RTTI EXPLICIT METHODS([]) FIELDS([]) PROPERTIES([])}
{$WEAKLINKRTTI OFF}
type
TDemo = class
procedure Demo();
end;
procedure TDemo.Demo;
var
AProc: TProc;
begin
AProc := procedure()
var
i: Integer;
begin
i := 5;
WriteLn(i);
end;
AProc();
end;
var
Demo: TDemo;
begin
Demo := TDemo.Create();
try
Demo.Demo;
finally
FreeAndNil(Demo);
end;
end.
截图:
【问题讨论】:
标签: delphi anonymous-methods delphi-10-seattle