[ library(port_profiler) | Reference Manual | Alphabetic Index ]

port_profile(+Goal, ++Options)

Create a (box model) port profile for the given Goal execution
Goal
A callable goal (atom or compound term)
Options
A list of OptionName:OptionValue structures

Description

Executes Goal and creates a (box model) port profile for this execution. The ports are the ports as defined for the debugger's box model and include:
call
predicate invocation
exit
deterministic predicate success
fail
predicate failure
*exit
nondeterministic predicate success
redo
reentering a predicate on backtracking
next
going to the next clause of a predicate
else
going to an alternative within a predicate
leave
leaving a predicate with exit_block/1
delay
delaying a predicate
resume
reentering a predicate on waking

The available options are:

format (default:txt)
output format, txt or html
txt
prints an ascii table, taking width-option into account
html
prints an html table, taking border-option into account
raw
prints the raw results as lines of the form
		[M:F/A from PM:PF/PA, Port, Count].
		
if the show_caller-option is on, and
		[M:F/A, Port, Count].
		
if the show_caller-option is off. These are valid Prolog terms which can be read back using read/2.
border (default:0)
table border width for html output
output (default:default)
where to put the result: possible values are
file(File)
where File is a file name
stream(Stream)
where Stream is an Eclipse stream identifier
dir(Dir)
where Dir is a directory in which files with generated names will be placed
default
either dir(profiler) for html format, or stream(output) otherwise
ports (default:all)
the atom 'all' or a list of port names
predicates (default:all)
the atom 'all' or 'spied_only'. The latter means that only predicates with a spy point have their ports counted.
show_caller (default:on)
whether to show and distinguish predicates by their calling predicate (on or off). This is the only option that affects data collection as well as presentation.
show_module (default:off)
whether to show the predicate's definition modules in the output table (on or off)
width (default:80)
page width for txt output
Note: Any choicepoints that are left behind by Goal will be cut, i.e. port_profile/2 behaves like once/1.

Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

See Also

library(port_profiler), library(coverage), profile / 1, last_port_profile / 1