[det]profile_data(-Data)Gather all relevant data from profiler. This predicate may be called
while profiling is active in which case it is suspended while collecting
the data. Data is a dict providing the following fields:
summary:Dict- Overall statistics providing
- samples:Count: Times the statistical profiler was called or, if
exact
is true, the number of times execution moved to another
node of the call tree.
- ticks:Count Nanoseconds sampled during profiling
- accounting:Count Nanoseconds spent on accounting. This is the
profiler's own overhead. The exact modes measure it and exclude it from
the times of the predicates.
- time:Seconds Total time sampled
- nodes:Count Nodes in the call graph.
- sample_period: MicroSeconds Same interval timer period in micro
seconds
- ports: Ports One of
true, false or classic
- clock: Clock One of
cpu or wall, the time
that was profiled.
- exact: Bool Whether the data was collected using
exact(true)
- nodes
- List of nodes. Each node provides:
predicate:PredicateIndicator- or a blob that represents another profiled object, such as an XPCE
method.
ticks_self:Count
ticks_siblings:Count- Nanoseconds sampled in the predicate itself and in its callees.
call:Count
redo:Count
exit:Count
callers:list_of(Relative)
callees:list_of(Relative)
Relative is a term of the shape below that represents a caller
or callee. Future versions are likely to use a dict instead.
node(PredicateIndicator, CycleID, Ticks, TicksSiblings,
Calls, Redos, Exits)
- Introduced in 8.1.14 (👉5872e57) profile_data/1 to library(statistics) and use dicts for dealing with the profile data structures.