Time 是否可以在Swi Prolog中以微秒为单位获取经过的时间?

Time 是否可以在Swi Prolog中以微秒为单位获取经过的时间?,time,prolog,swi-prolog,Time,Prolog,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. 这允许我以毫秒为单位获取时间。但我需要几微秒 是否可以在Sw

简单的问题

我需要计算执行谓词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,这正是平均运行时间(以微秒为单位)。

使用get\u timeTime代替statisticswalltime。这将以浮点形式返回墙时间戳。报告时间的分辨率取决于操作系统。walltime统计数据源于Quintus兼容性