delphi – MidasLib.dcu使应用程序变慢

我在一些客户端声明MidasLib以避免由Midas.dll引起的dll地狱.

下面的代码运行大约2350ms.如果我在使用中删除了MidaLib声明,它将在45毫秒内开始运行!!

data.xml文件使用TClientDataSet.SaveToFile方法保存,有5000条记录,大小约为600Kb.

有谁知道如何解释这种奇怪的行为?

我可以在Delphi XE2 upd 3和Delphi XE3 upd 2中确认问题.

谢谢.

program Loader;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  MidasLib,System.SysUtils,Winapi.Windows,Data.DB,Datasnap.DBClient;

var
  cds : TClientDataSet;
  start,stop : Cardinal;
begin
  cds := TClientDataSet.Create(nil);
  try
    start := GetTickCount;
    cds.LoadFromFile('c:\temp\data.xml');
    stop := GetTickCount;
    Writeln(Format('Time elapsed: %dms',[stop-start]));
  finally
    cds.Free;
  end;
end.

解决方法

这是一个已知的错误/回归,请参阅质量控制报告

> http://qc.embarcadero.com/wc/qcmain.aspx?d=109476
> http://qc.embarcadero.com/wc/qcmain.aspx?d=107346

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...