Trace module#
Summary: The Trace module provides performance tracking utility classes for counting, timing, measuring, recording, and reporting events.
Trace – Utilities for counting and recording events.
Classes:
A representation of a call tree. |
|
This is a singleton class that records TraceEvent instances and populates TraceCollection instances. |
|
This class converts streams of TraceEvent objects into call trees which can then be used as a data source to a GUI or written out to a file. |
Functions:
|
A decorator that enables tracing the function that it decorates. |
|
A convenience. |
|
A context manager that calls BeginEvent on the global collector on enter and EndEvent on exit. |
- class pxr.Trace.AggregateNode#
A representation of a call tree. Each node represents one or more calls that occurred in the trace. Multiple calls to a child node are aggregated into one node.
Attributes:
list[AggregateNode]
int
int
TimeStamp
bool
True if this object has expired, False otherwise.
Id
TimeStamp
str
- property children#
list[AggregateNode]
- Type:
type
- property count#
int
Returns the call count of this node.
recursive
determines if recursive calls are counted.- Type:
type
- property exclusiveCount#
int
Returns the exclusive count.
- Type:
type
- property exclusiveTime#
TimeStamp
Returns the time spent in this node but not its children.
- Type:
type
- property expanded#
bool
Returns whether this node is expanded in a gui.
type : None
Sets whether or not this node is expanded in a gui.
- Type:
type
- property expired#
True if this object has expired, False otherwise.
- property id#
Id
Returns the node’s id.
- Type:
type
- property inclusiveTime#
TimeStamp
Returns the total time of this node ands its children.
- Type:
type
- property key#
str
Returns the node’s key.
- Type:
type
- class pxr.Trace.Collector#
This is a singleton class that records TraceEvent instances and populates TraceCollection instances.
All public methods of TraceCollector are safe to call from any thread.
Methods:
BeginEvent
(key)Record a begin event with key if
Category
is enabled.BeginEventAtTime
(key, ms)Record a begin event with key at a specified time if
Category
is enabled.Clear
()Clear all pending events from the collector.
EndEvent
(key)Record an end event with key if
Category
is enabled.EndEventAtTime
(key, ms)Record an end event with key at a specified time if
Category
is enabled.GetLabel
()Return the label associated with this collector.
Attributes:
bool
True if this object has expired, False otherwise.
None
- BeginEvent(key) TimeStamp #
Record a begin event with key if
Category
is enabled.A matching end event is expected some time in the future.
If the key is known at compile time
BeginScope
andScope
methods are preferred because they have lower overhead.The TimeStamp of the TraceEvent or 0 if the collector is disabled.
BeginScope
Scope
- Parameters:
key (Key)
- BeginEventAtTime(key, ms) None #
Record a begin event with key at a specified time if
Category
is enabled.This version of the method allows the passing of a specific number of elapsed milliseconds, ms, to use for this event. This method is used for testing and debugging code.
- Parameters:
key (Key)
ms (float)
- Clear() None #
Clear all pending events from the collector.
No TraceCollection will be made for these events.
- EndEvent(key) TimeStamp #
Record an end event with key if
Category
is enabled.A matching begin event must have preceded this end event.
If the key is known at compile time EndScope and Scope methods are preferred because they have lower overhead.
The TimeStamp of the TraceEvent or 0 if the collector is disabled.
EndScope
Scope
- Parameters:
key (Key)
- EndEventAtTime(key, ms) None #
Record an end event with key at a specified time if
Category
is enabled.This version of the method allows the passing of a specific number of elapsed milliseconds, ms, to use for this event. This method is used for testing and debugging code.
- Parameters:
key (Key)
ms (float)
- GetLabel() str #
Return the label associated with this collector.
- property enabled#
bool
Returns whether collection of events is enabled for DefaultCategory.
type : None
Enables or disables collection of events for DefaultCategory.
- Type:
classmethod type
- property expired#
True if this object has expired, False otherwise.
- property pythonTracingEnabled#
None
Set whether automatic tracing of all python scopes is enabled.
type : bool
Returns whether automatic tracing of all python scopes is enabled.
- Type:
type
- class pxr.Trace.Reporter#
This class converts streams of TraceEvent objects into call trees which can then be used as a data source to a GUI or written out to a file.
Methods:
Clears event tree and counters.
GetLabel
()Return the label associated with this reporter.
Report
(s, iterationCount)Generates a report to the ostream s, dividing all times by iterationCount.
Generates a timeline trace report suitable for viewing in Chrome's trace viewer.
ReportTimes
(s)Generates a report of the times to the ostream s.
This fully re-builds the event and aggregate trees from whatever the current collection holds.
Attributes:
AggregateNode
True if this object has expired, False otherwise.
bool
bool
None
- GetLabel() str #
Return the label associated with this reporter.
- Report(s, iterationCount) None #
Generates a report to the ostream s, dividing all times by iterationCount.
- Parameters:
s (ostream)
iterationCount (int)
- ReportChromeTracing(s) None #
Generates a timeline trace report suitable for viewing in Chrome’s trace viewer.
- Parameters:
s (ostream)
- ReportChromeTracingToFile()#
- UpdateTraceTrees() None #
This fully re-builds the event and aggregate trees from whatever the current collection holds.
It is ok to call this multiple times in case the collection gets appended on inbetween.
If we want to have multiple reporters per collector, this will need to be changed so that all reporters reporting on a collector update their respective trees.
- property aggregateTreeRoot#
AggregateNode
Returns the root node of the aggregated call tree.
- Type:
type
- property expired#
True if this object has expired, False otherwise.
- property foldRecursiveCalls#
bool
Returns the current setting for recursion folding for stack trace event reporting.
type : None
When stack trace event reporting, this sets whether or not recursive calls are folded in the output.
Recursion folding is useful when the stacks contain deep recursive structures.
- Type:
type
- globalReporter = <pxr.Trace.Reporter object>#
- property groupByFunction#
bool
Returns the current group-by-function state.
type : None
This affects only stack trace event reporting.
If
true
then all events in a function are grouped together otherwise events are split out by address.- Type:
type
- property shouldAdjustForOverheadAndNoise#
None
Set whether or not the reporter should adjust scope times for overhead and noise.
- Type:
type
- pxr.Trace.TraceFunction(obj)#
A decorator that enables tracing the function that it decorates. If you decorate with ‘TraceFunction’ the function will be traced in the global collector.
- pxr.Trace.TraceMethod(obj)#
A convenience. Same as TraceFunction but changes the recorded label to use the term ‘method’ rather than ‘function’.
- pxr.Trace.TraceScope(label)#
A context manager that calls BeginEvent on the global collector on enter and EndEvent on exit.