Jetson Linux API 参考文档

32.7.4 版本
NvElementProfiler.h
前往此文件的文档。
1 /*
2  * 版权所有 (c) 2016, NVIDIA CORPORATION。保留所有权利。
3  *
4  * 在源代码和二进制形式中再发布和使用,无论是否
5  * 修改,均被允许,但须遵守以下条件
6  * 满足:
7  * * 源代码的再发布必须保留上述版权
8  * 声明、此条件列表和以下免责声明。
9  * * 二进制形式的再发布必须在上述版权
10  * 声明、此条件列表和以下免责声明中复制,
11  * 在文档和/或随发行版提供的其他材料中。
12  * * 未经事先书面许可,NVIDIA CORPORATION 的名称及其
13  * 贡献者的姓名不得用于背书或推销产品
14  * 从本软件衍生而来。
15  *
16  * 本软件由版权持有者“按原样”提供,并且任何
17  * 明示或暗示的担保,包括但不限于
18  * 对适销性和针对特定用途的适用性的暗示担保
19  * 均不承担责任。在任何情况下,版权所有者或
20  * 贡献者均不对任何直接、间接、附带、特殊、
21  * 惩戒性或后果性损害(包括但不限于
22  * 采购替代商品或服务;使用、数据或
23  * 利润损失;或业务中断)负责,无论何种原因以及基于何种理论
24  * 的责任,无论是合同、严格责任还是侵权
25  * (包括疏忽或其他原因)以任何方式因使用
26  * 本软件而引起,即使已被告知可能发生此类损害。
27  */
28 
29 #ifndef __NV_ELEMENT_PROFILER_H__
30 #define __NV_ELEMENT_PROFILER_H__
31 
32 #include <iostream>
33 #include <pthread.h>
34 #include <map>
35 #include <stdint.h>
36 #include <sys/time.h>
37 
73 public
79  typedef int ProfilerField;
94  typedef struct {
97 
104 
108  uint64_t num_late_units;
109 
111  float average_fps;
112 
114  struct timeval profiling_time;
116 
123 
129  void printProfilerData(std::ostream &out_stream = std::cout);
130 
138  uint64_t startProcessing();
139 
149  void finishProcessing(uint64_t id, bool is_late);
150 
158  void enableProfiling(bool reset_data);
159 
163  void disableProfiling();
164 private
168  void reset();
169 
170  pthread_mutex_t profiler_lock;
172  bool enabled;
174  const ProfilerField valid_fields;
176  struct NvElementProfilerDataInternal : NvElementProfilerData {
178  struct timeval start_time;
179 
181  struct timeval stop_time;
182 
187  struct timeval accumulated_time;
188 
190  uint64_t total_latency;
191  } data_int;
192 
195  std::map<uint64_t, struct timeval> unit_start_time_queue;
196 
197  uint64_t unit_id_counter;
206 
214  void operator=(NvElementProfiler const&);
215 
217 
218  friend class NvElement;
219 };
220 
223 #endif
NvElementProfiler::NvElementProfilerData::valid_fields
ProfilerField valid_fields
元素支持的有效字段。
定义: NvElementProfiler.h:96
NvElementProfiler
定义: NvElementProfiler.h:72
NvElementProfiler::enableProfiling
void enableProfiling(bool reset_data)
启用性能分析器。
NvElementProfiler::PROFILER_FIELD_LATE_UNITS
static const ProfilerField PROFILER_FIELD_LATE_UNITS
定义: NvElementProfiler.h:82
NvElementProfiler::ProfilerField
int ProfilerField
定义: NvElementProfiler.h:79
NvElementProfiler::printProfilerData
void printProfilerData(std::ostream &out_stream=std::cout)
将元素的性能分析数据打印到输出流。
NvElementProfiler::startProcessing
uint64_t startProcessing()
通知性能分析器处理已开始。
NvElementProfiler::NvElementProfilerData::total_processed_units
uint64_t total_processed_units
处理单元总数。
定义: NvElementProfiler.h:106
NvElementProfiler::NvElementProfilerData::average_fps
float average_fps
处理单元的平均速率。
定义: NvElementProfiler.h:111
NvElementProfiler::NvElementProfilerData::num_late_units
uint64_t num_late_units
迟到元素的单元数量。
定义: NvElementProfiler.h:108
NvElementProfiler::NvElementProfilerData
保存元素的性能分析数据。
定义: NvElementProfiler.h:94
NvElementProfiler::PROFILER_FIELD_LATENCIES
static const ProfilerField PROFILER_FIELD_LATENCIES
定义: NvElementProfiler.h:83
NvElementProfiler::NvElementProfilerData::max_latency_usec
uint64_t max_latency_usec
每个已处理单元的最大延迟,以微秒为单位。
定义: NvElementProfiler.h:103
NvElementProfiler::PROFILER_FIELD_NONE
static const ProfilerField PROFILER_FIELD_NONE
定义: NvElementProfiler.h:80
NvElementProfiler::PROFILER_FIELD_FPS
static const ProfilerField PROFILER_FIELD_FPS
定义: NvElementProfiler.h:84
NvElement
每个元素都有一个唯一的名称,可用于在调试日志中识别元素。
定义: NvElement.h:63
NvElementProfiler::PROFILER_FIELD_ALL
static const ProfilerField PROFILER_FIELD_ALL
定义: NvElementProfiler.h:85
NvElementProfiler::PROFILER_FIELD_TOTAL_UNITS
static const ProfilerField PROFILER_FIELD_TOTAL_UNITS
定义: NvElementProfiler.h:81
NvElementProfiler::disableProfiling
void disableProfiling()
禁用性能分析器。
NvElementProfiler::finishProcessing
void finishProcessing(uint64_t id, bool is_late)
通知性能分析器处理已完成。
NvElementProfiler::NvElementProfilerData::average_latency_usec
uint64_t average_latency_usec
所有已处理单元的平均延迟,以微秒为单位。
定义: NvElementProfiler.h:99
NvElementProfiler::NvElementProfilerData::min_latency_usec
uint64_t min_latency_usec
每个已处理单元的最小延迟,以微秒为单位。
定义: NvElementProfiler.h:101
NvElementProfiler::getProfilerData
void getProfilerData(NvElementProfilerData &data)
获取元素的性能分析数据。
. All rights reserved.