Jer*_*dge 3 delphi image performance-testing
我正在对标准 VCLTImage控件和各种其他第三方替代品的性能进行一些比较。我GetTickCount用来测量加载图像需要多长时间。实际上它需要大约 4 秒,但LoadFromFile()几乎立即返回让我惊讶!
procedure TfrmMain.Button1Click(Sender: TObject);
begin
FStart:= GetTickCount;
imgStandard.Picture.LoadFromFile(txtFilename.Text);
FEnd:= GetTickCount; //<-- Put a breakpoint here to observe immediate return in debug
lblStandard.Caption:= IntToStr(FEnd-FStart)+' Msec';
end;
Run Code Online (Sandbox Code Playgroud)
在两个图像控件中加载相同的 JPEG 文件在视觉上花费的时间与例如与TImage32来自 Graphics32 的比较一样长。两者都按预期在此期间阻塞 UI,大约为 4 秒。例如,GR32 报告 3734 毫秒,而标准的仅报告 16 毫秒。
为什么会发生这种情况?如何准确测量图像真正加载到TImage.
为什么会发生这种情况?
两个控件之间的区别在于如何处理减压。
几乎所有为您的图像花费的时间都用于解压缩步骤,这解释了您的时间差异。
如何准确测量图像真正加载到
TImage.
您可以在对 的调用之后imgStandard.Update立即插入对的调用LoadFromFile,这将强制执行绘制周期,从而强制执行解压步骤。
| 归档时间: |
|
| 查看次数: |
147 次 |
| 最近记录: |