11.3.164 profile_data/1 [development]



Data is the profiling data accumulated so far.


list of profile_pair


profile_pair ::= caller-profile_info
profile_info ::= counter(list of callee_pair,insns,chpts,tagged_calls)
insns ::= integer {virtual instructions executed}
chpts ::= integer {choicepoints accessed}
callee_pair ::= callee-tagged_calls
tagged_calls ::= det(calls) {all calls were determinate}
| nondet(calls) {not all calls were determinate}
calls ::= integer {number of calls}
caller ::= pred_spec
callee ::= pred_spec


The profiling data accumulated so far is collected into a term of type list of profile_pair and unified with Data.

Please note: The number of instructions and choicepoints are not counted for interpreted code, so insns and chpts will be 0 for such predicates.

Please note: In a list of callee_pair, callee is not necessarily unique. This happens if the given caller code contains more than one call to callee.

Please note: The calls of a profile_info can be greater than the total calls of its list of callee_pair. This happens e.g. if caller occurred in a metacall context.

See Also

Execution Profiling.

Send feedback on this subject.