object

# `ports_profiler`

Predicate execution box model port profiler.

Availability:
`logtalk_load(ports_profiler(loader))`
Author: Paulo Moura
Version: 1:13:0
Date: 2023-10-02
Compilation flags:
`static, context_switching_calls`
Provides:
logtalk::debug_handler_provider/1
logtalk::debug_handler/2
Uses:
logtalk
user
Remarks:
(none)
Inherited public predicates:
(none)

## Public predicates

### `data/0`

Prints a table with all port profiling data.

Compilation flags:
`static`
Mode and number of proofs:
`data` - `one`

### `data/1`

Prints a table with all port profiling data for the specified entity.

Compilation flags:
`static`
Template:
`data(Entity)`
Mode and number of proofs:
`data(+entity_identifier)` - `one`

### `data/2`

Prints a table with all port profiling data for the specified entity predicate (or non-terminal).

Compilation flags:
`static`
Template:
`data(Entity,Predicate)`
Mode and number of proofs:
`data(+entity_identifier,+predicate_indicator)` - `one`
`data(+entity_identifier,+non_terminal_indicator)` - `one`

### `reset/0`

Resets all port profiling data.

Compilation flags:
`static`
Mode and number of proofs:
`reset` - `one`

### `reset/1`

Resets all port profiling data for the specified entity.

Compilation flags:
`static`
Template:
`reset(Entity)`
Mode and number of proofs:
`reset(+entity_identifier)` - `one`

### `port/5`

Enumerates, by backtracking, all collected port profiling data.

Compilation flags:
`static`
Template:
`port(Port,Entity,Functor,Arity,Count)`
Mode and number of proofs:
`port(?atom,?entity_identifier,?atom,?integer,?integer)` - `zero_or_more`

### `clause_location/6`

Enumerates, by backtracking, all collected profiled clause location data.

Compilation flags:
`static`
Template:
`clause_location(Entity,Functor,Arity,ClauseNumber,File,BeginLine)`
Mode and number of proofs:
`clause_location(?entity_identifier,?atom,?integer,?integer,?atom,?integer)` - `zero_or_more`

### `clause/5`

Enumerates, by backtracking, all collected clause profiling data.

Compilation flags:
`dynamic`
Template:
`clause(Entity,Functor,Arity,ClauseNumber,Count)`
Mode and number of proofs:
`clause(?entity_identifier,?atom,?integer,?integer,?integer)` - `zero_or_more`

## Protected predicates

(no local declarations; see entity ancestors if any)

## Private predicates

### `clause_location_/6`

Internal table of collected profiled clause location data.

Compilation flags:
`dynamic`
Template:
`clause_location_(Entity,Functor,Arity,ClauseNumber,File,BeginLine)`
Mode and number of proofs:
`clause_location_(?entity_identifier,?atom,?integer,?integer,?atom,?integer)` - `zero_or_more`

### `port_/5`

Internal table of collected port profiling data.

Compilation flags:
`dynamic`
Template:
`port_(Port,Entity,Functor,Arity,Count)`
Mode and number of proofs:
`port_(?atom,?entity_identifier,?atom,?integer,?integer)` - `zero_or_more`

### `clause_/5`

Internal table of collected clause profiling data.

Compilation flags:
`dynamic`
Template:
`clause_(Entity,Functor,Arity,ClauseNumber,Count)`
Mode and number of proofs:
`clause_(?entity_identifier,?atom,?integer,?integer,?integer)` - `zero_or_more`

### `entity_defines_/2`

Internal cache for profiled predicates.

Compilation flags:
`dynamic`
Template:
`entity_defines_(Entity,Predicate)`
Mode and number of proofs:
`entity_defines_(?entity_identifier,?predicate_indicator)` - `zero_or_more`

## Operators

(none)