• Intel® Graphics Performance Analyzers 2020 R1
  • 12/20/2019
  • Public Content
Contents

使用 ITT API 进行编译和链接

在检测应用程序之前,需要先配置编译系统,使其能够访问 API 的头文件和函数库。
<install_dir>
是 Intel® Graphics Performance Analyzers 的安装目录。
  • <install_dir>
    \
    sdk\
    include 添加至 INCLUDE 路径
  • <install_dir>
    \
    sdk\
    lib\x86 添加至 32-bit LIBRARIES 路径
  • <install_dir>
    \
    sdk\
    lib\x64 添加至 64-bit LIBRARIES 路径
默认安装目录为 C:\Program Files\IntelSWTools\GPA
将 ITT API 头文件包括到应用程序中
将以下
&num;include
语句添加到要检测的的每个源文件:
&num;include <ittnotify.h>
头文件
ittnotify.h
包含 ITT API 例程和重要的宏的定义,这些例程和宏提供从用户应用程序调用 API 的正确逻辑。
备注
头文件
ittnotify.h
定义许多本文档未涉及的函数。然而,Intel® GPA 仅支持本文叙述的函数。
ITT API 设计为在禁用跟踪时的开销几乎为零。不过,如果需要完全的零开销,可以从应用程序编译出所有 ITT API 调用,方法是:或者通过编译器命令行,或者在源文件中加入
ittnotify.h
文件之前,在编译项目中定义
INTEL_NO_ITTNOTIFY_API
宏文件。
libittnotify.lib
静态库链接至应用程序
需要将静态库
libittnotify.lib
链接到应用程序。如果启用跟踪,此静态库将加载 ITT API 数据收集器,并将 ITT API 检测数据转发到 Intel® GPA。
如果跟踪被禁用,该静态库忽略 ITT API 调用,提供几乎为零的检测开销。
备注
如果在配有旧版 Microsoft* Visual Studio* 的系统上运行 Intel® GPA,必须安装相应的安全更新,以链接
libittnotify.lib
静态库的动态版本:
Microsoft* Visual Studio* 版本
安全更新
Microsoft Visual Studio* 2005
KB2538218
Microsoft Visual Studio* 2008
KB2538241
如果不想更新 Visual Studio 版本,就必须将
libittnotify.lib
静态
库链接至应用程序。
UNICODE 支持
所有使用字符串变量的 ITT API 函数均遵循 Windows* OS UNICODE 惯例,实际函数名称使用后缀
A
表示 ASCII API,
W
表示 UNICODE API。
例如:
__itt_domain_createA( const char* ); __itt_domain_createW( const wchar_t* );
为方便跨平台代码开发,ITT API 使用 C 语言宏
__itt_domain_create
。如果在 Windows* 操作系统上编译时定义了 UNICODE 宏,C 语言宏就会解析为
__itt_domain_createW
。否则,就会解析为 __itt_domain_createA。
条件编译
为使代码发行版获得最佳性能,使用条件编译来关闭注释。先定义宏
INTEL_NO_ITTNOTIFY_API
,再在编译时使用
ittnotify.h
,从代码中排除所有
__itt_*
函数。
也可以通过定义这个宏来从链接阶段移除所有静态库。
 

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804