[ library(port_profiler) | The ECLiPSe Libraries | 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