bla*_*pus 4 delphi timer stopwatch
我TStopWatch
用于Delphi 10.2东京的高精度计时.
本网站:https://www.thoughtco.com/accurately-measure-elapsed-time-1058453给出了以下示例:
var
sw : TStopWatch;
elapsedMilliseconds : cardinal;
begin
sw := TStopWatch.Create() ;
try
sw.Start;
//TimeOutThisFunction()
sw.Stop;
elapsedMilliseconds := sw.ElapsedMilliseconds;
finally
sw.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
显然,那里有一个错误,因为:
StopWatch
不含 Free
TStopwatch
不是类,但仍需要显式初始化[usingStartNew
或Create
methods].
这令人困惑.我TStopWatch
在一个函数中使用,我没有使用free
.在每个会话期间可以多次调用此函数(可能数百次,具体取决于用法).这意味着TStopWatch
将创建多个实例,而不会被释放.
是否存在内存泄漏或其他并发症的可能性?如果答案是肯定的,我该怎么办?我是否只需要为TStopWatch
每个应用程序创建一个实例?或者我应该使用其他功能?或者是其他东西?
链接的示例TStopWatch
基于类.
unit StopWatch;
interface
uses
Windows, SysUtils, DateUtils;
type
TStopWatch = class
...
Run Code Online (Sandbox Code Playgroud)
它是在德尔福推出基于记录之前发布的TStopWatch
.
由于类变体需要Free
在使用后调用,而基于记录不需要调用,所以这里没有混淆.
只需继续使用Delphi记录,TStopWatch
无需在使用后将其释放.
通常我使用以下模式:
var
sw : TStopWatch;
begin
sw := TStopWatch.StartNew;
... // Do something
sw.Stop;
// Read the timing
WriteLn(sw.ElapsedMilliseconds);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
856 次 |
最近记录: |