是否可以在Swi-Prolog中获得以毫秒为单位的经过时间?

问题描述 投票:0回答:1

简单问题。

我需要计算执行谓词X所需的时间。所以我写了这个谓词:

chronometrise(X) :-
    write('Executing: '), write(X), nl, nl,
    statistics(walltime, _), call(X), statistics(walltime, [_,E]),
    nl, write('Time: '), write(E), write(' ms.'), nl.

这可以让我获得毫秒级的时间。但我需要微秒。

是否可以在Swi-Prolog中进行计算?还是毫秒是最好的精度?

编辑:嗯,我发现了一个更好的方法:执行谓词1000次并计算经过的时间。这将使我们以毫秒为单位的平均执行时间乘以1000,这恰好是以微秒为单位的平均经过时间。

time prolog swi-prolog
1个回答
0
投票

是否可以在Swi-Prolog中进行计算?或毫秒是最佳精度?

是,请使用time/1,例如

time(Goal).

或您的情况

time(X).
© www.soinside.com 2019 - 2024. All rights reserved.