C++ 代码剖析 - 2022.1 简体中文

Vitis 统一软件平台文档 应用加速开发 (UG1393)

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 简体中文

对于 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_Examplesdebug_profile 示例演示了主机应用中的用户事件剖析。XRT 正确检测您的主机应用后,即可从这些用户定义的范围和事件以及基于 XRT API 的标准事件中捕获剖析数据。您必须在 xrt.ini 文件中启用剖析,如前所述。