对于 C++ 代码,提供的对象包括:
-
user_range
- 此对象可捕获含指定 ID 的活动的测量范围,包括此活动的开始时间和结束时间。对象构造函数为:
user_range(const char* label, const char* tooltip);
-
user_event
- 此对象用于标记在单一时间点发生的事件,并在时间线轨迹上添加指定标签。对象构造函数为:
user_event()
user_range
用于构造对象,并在开始构造时立即开始记录时间。user_range
对象的使用详情:
- 如果使用默认构造函数来例化
user_range
,则从用户以标签和工具提示来调用user_range.start()
开始,才会标记时间。 - 您可将传递标签和工具提示字符串的
user_range
对象例化。这样即可立即开始监控时间范围。 - 您必须调用
user_range.start()
和user_range.end()
以捕获您感兴趣的时间范围。 - 如果不调用
user_range.end()
,那么对任何范围进行的跟踪都将持续至user_range
对象被析构为止。 - 通过调用主机代码中的
user_range.start()
/user_range.end()
对,即可复用user_range
对象,复用次数无限。 - 对
user_range.start()
执行顺序调用会忽略除第一次调用外的所有调用,直至user_range.end()
终止此范围为止。 - 对
user_range.end()
执行顺序调用会忽略除第一次调用外的所有调用,直至user_range.start()
开始新范围为止。
user_event
对象的使用:
-
user_event
对象必须使用默认构造函数进行例化。 - 调用
user_event.mark()
会在时间线轨迹上的该特定时间创建用户标记。 -
user_event.mark()
可接受可选const char*
实参,该实参在时间线轨迹上显示为标签。
Vitis_Accel_Examples 的 debug_profile 示例演示了主机应用中的用户事件剖析。XRT 正确检测您的主机应用后,即可从这些用户定义的范围和事件以及基于 XRT API 的标准事件中捕获剖析数据。您必须在 xrt.ini 文件中启用剖析,如前所述。