小编net*_*ecz的帖子

提高Delphi 2010自身调试可视化工具的速度

我为TDataSet编写了Delphi调试可视化工具,以显示当前行的值,源代码+截图:http://delphi.netcode.cz/text/tdataset-debug-visualizer.aspx.工作得很好,但很慢.我做了一些优化(如何获得字段名),但仍然只有20个字段需要10秒才能显示 - 非常糟糕.

主要问题似乎是缓慢IOTAThread90.Evaluate使用如下所示的主代码,这个程序花费大部分时间,与**约80%的时间一致.FExpression是代码中TDataset的名称.

procedure TDataSetViewerFrame.mFillData;
var
 iCount: Integer;
 I: Integer;
 //  sw: TStopwatch;
 s: string;
 begin
 //  sw := TStopwatch.StartNew;
   iCount := StrToIntDef(Evaluate(FExpression+'.Fields.Count'), 0);
   for I := 0 to iCount - 1 do
   begin
     s:= s + Format('%s.Fields[%d].FieldName+'',''+', [FExpression, I]);
  //  FFields.Add(Evaluate(Format('%s.Fields[%d].FieldName', [FExpression, I])));
     FValues.Add(Evaluate(Format('%s.Fields[%d].Value', [FExpression, I]))); //**
   end;
 if s<> '' then
   Delete(s, length(s)-4, 5);
 s := Evaluate(s);
 s:= Copy(s, 2, Length(s) -2);
 FFields.CommaText := s;
{  sw.Stop;
 s := sw.Elapsed;
 Application.MessageBox(Pchar(s), '');}
end; …
Run Code Online (Sandbox Code Playgroud)

delphi debugging toolsapi

8
推荐指数
2
解决办法
1178
查看次数

标签 统计

debugging ×1

delphi ×1

toolsapi ×1