[ Development Environment and Global Settings | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
profile(+Goal)
Profile the goal and print the times spent in each predicate.
- +Goal
- Atom or a compound term.
Description
This predicate invokes the profiler. The profiler first executes Goal
in profiling mode, which means that during its execution interrupts are
generated at regular intervals and the profiler remembers the currently
executing procedure. When the goal succeeds or fails, the profiler
prints so and then it prints the statistics about the time spent in
every encountered procedure. Goal can be any Prolog goal, it does not
have to be compiled in a special profiling mode and no Prolog flags have
to be set. The time spent in simple predicates (i.e. those with
call_type prolog, written in C) is counted to their parent clause.
A temporary file /tmp/eclipse.prof.<pid> is used to store the profiling
information and is removed upon exit.
Fail Conditions
None
Resatisfiable
No
Exceptions
- (6) out of range
- Flags contains an illegal flag.
Examples
[eclipse 6]: profile(boyer, [simple]).
rewriting...
proving...
goal succeeded
PROFILING STATISTICS
--------------------
Goal: boyer
Total user time: 10.65s
Predicate Module %Time Time
-------------------------------------------------
rewrite /2 eclipse 52.3% 5.57s
garbage_collect /0 sepia_kernel 23.1% 2.46s
rewrite_args /2 eclipse 16.6% 1.77s
equal /2 eclipse 4.7% 0.50s
...
plus /3 eclipse 0.1% 0.01s
See Also
get_flag / 2, profile / 2