statistics.pl -- Get information about resource usage
This library provides predicates to obtain information about resource usage by your program. The predicates of this library are for human use at the toplevel: information is printed. All predicates obtain their information using public low-level primitives. These primitives can be use to obtain selective statistics during execution.
- statistics is det
- Print information about resource usage using print_message/2.
- statistics(-Stats:dict) is det
- Stats is a dict representing the same information as statistics/0. This convience function is primarily intended to pass statistical information to e.g., a web client. Time critical code that wishes to collect statistics typically only need a small subset and should use statistics/2 to obtain exactly the data they need.
- thread_statistics(?Thread, -Stats:dict) is nondet
- Obtain statistical information about a single thread. Fails silently of the Thread is no longer alive.
- time(:Goal) is nondet
- Execute Goal, reporting statistics to the user. If Goal succeeds
non-deterministically, retrying reports the statistics for
providing the next answer.
Statistics are retrieved using thread_statistics/3 on the calling thread. Note that not all systems support thread-specific CPU time. Notable, this is lacking on MacOS X.
- profile(:Goal)
- profile(:Goal, +Options)
- Run Goal under the execution profiler. Defined options are:
- time(Which)
- Profile
cpu
orwall
time. The default is CPU time. - top(N)
- When generating a textual report, show the top N predicates.
- cumulative(Bool)
- If
true
(defaultfalse
), show cumulative output in a textual report.
- show_profile(+Options)
- Display last collected profiling data. Options are
- top(N)
- When generating a textual report, show the top N predicates.
- cumulative(Bool)
- If
true
(defaultfalse
), show cumulative output in a textual report.
- prof_statistics(-Node) is det[private]
- Get overall statistics
- prof_node(+Field, -Pairs) is nondet[private]
- Collect data for each of the interesting predicate.
- predicate_label(+Head, -Label)[private]
- Create a human-readable label for the given head
- predicate_functor_name(+Head, -Name)[private]
- Return the (module-free) name of the predicate for sorting purposes.
- profile(:Goal)
- profile(:Goal, +Options)
- Run Goal under the execution profiler. Defined options are:
- time(Which)
- Profile
cpu
orwall
time. The default is CPU time. - top(N)
- When generating a textual report, show the top N predicates.
- cumulative(Bool)
- If
true
(defaultfalse
), show cumulative output in a textual report.