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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以在Swi-Prolog中获得以毫秒为单位的经过时间?相关的知识,希望对你有一定的参考价值。

简单问题。

我需要计算执行谓词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,这恰好是以微秒为单位的平均经过时间。

答案

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

是,请使用time/1,例如

time(Goal).

或您的情况

time(X).

以上是关于是否可以在Swi-Prolog中获得以毫秒为单位的经过时间?的主要内容,如果未能解决你的问题,请参考以下文章

在不安装额外软件包的情况下获得以毫秒为单位的时间?

Lua - 当前时间(以毫秒为单位)

如何在 c++ 中以毫秒为单位获得系统启动时间?

如何以毫秒为单位获得两个 QDateTimes 之间的差异?

命令以毫秒为单位获取时间

DateTime 以毫秒为单位的表示?