[ Development Environment and Global Settings | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
profile(+Goal, +Flags)
Profile the goal and print the times spent in each predicate.
- +Goal
- Atom or a compound term.
- +Flags
- List of atoms.
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.
Flags is a list of flags, currently only simple is recognised and it
tells the profiler to count the simple predicates (i.e. those with
call_type prolog, written in C) separately. If no flag is specified,
the time spent in simple predicates 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.55s
Predicate Module %Time Time
-------------------------------------------------
=.. /2 sepia_kernel 31.1% 3.28s
garbage_collect /0 sepia_kernel 23.5% 2.48s
rewrite /2 eclipse 21.6% 2.28s
rewrite_args /2 eclipse 17.2% 1.82s
equal /2 eclipse 4.1% 0.43s
remainder /3 eclipse 0.9% 0.10s
...
plus /3 eclipse 0.1% 0.01s
yes.
See Also
get_flag / 2, profile / 1