12

一部のクライアントで Midas.dll によって引き起こされる dll 地獄を回避するために、MidasLib を宣言しています。

以下のコードは、約 2350ms で実行されます。uses の 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.
4

2 に答える 2

7

これは既知のバグ/リグレッションです。QC レポートを参照してください

于 2013-04-16T12:29:08.403 に答える