HDK
|
#include "pxr/pxr.h"
#include "pxr/base/trace/api.h"
#include "pxr/base/trace/collector.h"
#include "pxr/base/tf/preprocessorUtilsLite.h"
#include <atomic>
Go to the source code of this file.
Classes | |
class | TraceScopeAuto |
class | TraceAuto |
class | TraceCounterHolder |
#define _TRACE_COUNTER_CODE_INSTANCE | ( | instance, | |
name, | |||
code, | |||
isDelta | |||
) |
#define _TRACE_FUNCTION_INSTANCE | ( | instance, | |
name, | |||
prettyName | |||
) |
These pair a uniquely named TraceScopeHolder with a TraceScopeAuto. Together these will register a TraceScope only the first time the code is executed or if the TraceScope expires. Otherwise, the held TraceScope will be used to record begin and end events.
#define _TRACE_FUNCTION_SCOPE_INSTANCE | ( | instance, | |
name, | |||
prettyName, | |||
scopeName | |||
) |
#define _TRACE_MARKER_DYNAMIC_INSTANCE | ( | instance, | |
name | |||
) | TraceCollector::GetInstance().MarkerEvent(name); |
#define _TRACE_MARKER_INSTANCE | ( | instance, | |
name | |||
) |
#define _TRACE_SCOPE_DYNAMIC_INSTANCE | ( | instance, | |
str | |||
) | PXR_NS::TraceAuto TF_PP_CAT(TraceAuto_, instance)(str) |
#define _TRACE_SCOPE_INSTANCE | ( | instance, | |
name | |||
) |
#define TRACE_COUNTER_DELTA | ( | name, | |
delta | |||
) | _TRACE_COUNTER_INSTANCE(__LINE__, name, delta, /* isDelta */ true) |
Records a counter delta using the name as the counter key. The delta can be positive or negative. A positive delta will increment the total counter value, whereas a negative delta will decrement it. The recorded value will be stored at the currently traced scope, and will propagate up to the parent scopes.
#define TRACE_COUNTER_DELTA_CODE | ( | name, | |
code | |||
) | _TRACE_COUNTER_CODE_INSTANCE(__LINE__, name, code, true) |
Records a counter value using the name as the counter key. The value can be positive or negative. A positive value will increment the total counter value, whereas a negative value will decrement it. The recorded value will be stored at the currently traced scope, and will propagate up to the parent scopes.
This macro provides the same functionality as TRACE_COUNTER_DELTA, but takes a section of code in brackets, which assumes that a value will be assigned to 'value'. The section of code will not be executed, when tracing is turned off, which makes it possible to gather counter values from potentially expensive logic, without incurring an overhead with tracing turned off.
Usage:
TRACE_COUNTER_DELTA_CODE("My counter", { value = _ComputeExpensiveCounterValue(); })
#define TRACE_COUNTER_DELTA_DYNAMIC | ( | name, | |
delta | |||
) | TraceCollector::GetInstance().RecordCounterDelta(name, delta); |
Records a counter delta using the name as the counter key. Similar to TRACE_COUNTER_DELTA except that name
does not need to be a compile time string.
#define TRACE_COUNTER_VALUE | ( | name, | |
value | |||
) | _TRACE_COUNTER_INSTANCE(__LINE__, name, value, /* isDelta */ false) |
#define TRACE_COUNTER_VALUE_DYNAMIC | ( | name, | |
value | |||
) | TraceCollector::GetInstance().RecordCounterValue(name, value); |
Records a counter value using the name as the counter key. Similar to TRACE_COUNTER_VALUE except that name
does not need to be a compile time string.
#define TRACE_FUNCTION | ( | ) | _TRACE_FUNCTION_INSTANCE(__LINE__, __ARCH_FUNCTION__, __ARCH_PRETTY_FUNCTION__) |
#define TRACE_FUNCTION_DYNAMIC | ( | name | ) | _TRACE_FUNCTION_DYNAMIC_INSTANCE(__LINE__, __ARCH_FUNCTION__, __ARCH_PRETTY_FUNCTION__, name) |
Records a begin event when constructed and an end event when destructed, using name of the function or method and the supplied name as the key. Unlike TRACE_FUNCTION, the name argument will be evaluated each time this macro is invoked. This allows for a single TRACE_FUNCTION to track time under different keys, but incurs greater overhead.
#define TRACE_FUNCTION_SCOPE | ( | name | ) |
Records a timestamp when constructed and a timespan event when destructed, using the name of the function concatenated with name as the key.
#define TRACE_MARKER | ( | name | ) | _TRACE_MARKER_INSTANCE(__LINE__, name) |
#define TRACE_MARKER_DYNAMIC | ( | name | ) | _TRACE_MARKER_DYNAMIC_INSTANCE(__LINE__, name) |
#define TRACE_SCOPE | ( | name | ) | _TRACE_SCOPE_INSTANCE(__LINE__, name) |
#define TRACE_SCOPE_DYNAMIC | ( | name | ) | _TRACE_SCOPE_DYNAMIC_INSTANCE(__LINE__, name) |
Records a begin event when constructed and an end event when destructed, using name as the key. Unlike TRACE_SCOPE, the name argument will be evaluated each time this macro is invoked. This allows for a single TRACE_SCOPE to track time under different keys, but incurs greater overhead.