
port_profile(+Goal, ++Options)

   Create a (box model) port profile for the given Goal execution

Arguments
   Goal                A callable goal (atom or compound term)
   Options             A list of OptionName:OptionValue structures

Type
   library(port_profiler)

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
