[教程]QProfile教程之六:跟踪函数较差时的参数到日志中

通过前面的教程,我们已经了解了常规的 QProfile 性能分析日志的方法。但是,通过这个性能分析跟踪记录,我们只能得到这些函数那个执行时间长,但为什么执行时间长却毫无头绪,为了解决这一问题,TQProfile.Calc 方法,我们增加了一个回调函数参数,用来让用户来对性能跟踪情况进行进一步的详细分析。

下面是一个例子,当我们这个函数执行超过 100ms 时,我们来将参数记录到日志中。

procedure TForm1.LoadFromFile(const AFileName:String);
var
   AStream:TFileStream;
begin
TQProfile.Calc(
  procedure (const AEscapedTime:Double)
  begin
    if AEscapedTime>100 then
       PostLog(llDebug,'加载文件 %s 用时过长:%f ms',[AFileName,AEscapedTime]);
  end);
AStream:=TFileStream.Create(AFileName,fmOpenRead or fmShareDenyWrite);
....
end;

通过这种方式,我们可以通过参数进一步复现问题的发生过程,从而找到程序卡顿的问题所在。

当然,TQProfile.Calc 的几个重载都包含了这个可选参数的,如果您当前的版本没有,请更新到最新版本,以获得相关的支持。

滚动至顶部