我正在对标准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;
从视觉上将相同的JPEG文件加载到两个图像控件中所需的时间,例如与TImage32
从Graphics32中进行比较所需的时间一样长。两者均在此时间段(大约4秒)内按预期阻止了UI。GR32报告例如3734毫秒,而标准报告仅报告16毫秒。
为什么会这样?如何准确测量将图像真正加载到图像中所需的时间TImage
?
为什么会这样?
这两个控件之间的区别在于处理减压的方式。
图像几乎所有时间都用于减压步骤,这可以解释您的时间差异。
如何准确测量将图像真正加载到图像中所需的时间
TImage
?
您可以在对的调用之后imgStandard.Update
立即插入对的调用LoadFromFile
,这将强制进行绘制循环,从而强制执行减压步骤。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句