Se você planeja fazer cálculos pesados no Prolog, provavelmente deseja registrar quanto tempo é gasto em um predicado.
Para fazer isso, você pode contar com o statistics
predicado em conjunto com o walltime
parâmetro atom.
?- statistics(walltime, [TimeSinceStart | [TimeSinceLastCall]]),
some_heavy_operation,
statistics(walltime, [NewTimeSinceStart | [ExecutionTime]]),
write('Execution took '), write(ExecutionTime), write(' ms.'), nl.
statistics(walltime, Result)
define Result
como uma lista, com o início sendo o tempo total desde que a instância do Prolog foi iniciada e o final sendo uma lista de elemento único representando o tempo desde a última statistics(walltime, _)
chamada foi feita.
Referência : estatísticas / 2