Timings are available via the built-in predicates
cputime/1nd
statistics/2
To obtain the CPU time consumption of a (succeeding) goal, use the scheme
cputime(StartTime),
my_goal,
TimeUsed is cputime-StartTime,
printf("Goal took %.2f seconds%n", [TimeUsed]).
The
statistics/2 and statistics/0
commands can also be used to obtain memory usage information.
The memory areas used by ECLiPSe are:
Shared and private heap
for compiled code, non-logical store (
bags and shelves, findall)
dictionary of functors, various tables and buffers.
Global stack
for most ECLiPSe data like lists, structures, suspensions.
This is likely to be the largest consumer of memory.
Local stack
for predicate call nesting and local variables.
Control and trail stack
for data needed on backtracking.
Automatic garbage collection is done on the global and trail stack,
and on the dictionary. Garbage collection parameters can be set using
set_flag/2
and an explicit collection can be requested using
garbage_collect/0.