[ 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 throw/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 : profile / 1, last_port_profile / 1