TecoHotSpots
TecoHotSpots是一款性能调优插件,能够帮助开发人员快速地了解程序的性能瓶颈、资源利用率等信息,从而提高程序的性能和效率。
TecoHotSpots使用条件
Windows/Mac端环境部署
- 打开Visual Studio Code工具,点击工具左侧的**扩展(Ctrl+Shift+X)**按钮
- 在应用商城中搜索Remote - SSH扩展,点击安装。
远程服务器端环境部署
初次安装TecoHotSpots后,需要在远程服务器端配置编译环境,程序调试功能才能正常使用。
- 根据Remote - SSH操作介绍,连接远程服务器
- 打开远程服务器的~/.bashrc文件,增加环境变量source /opt/tecoai/setvars.sh,保存退出。
- 执行source ~/.bashrc命令,刷新并执行~/.bashrc文件。
- 执行rm -rf ~/.vscode-server命令,删除VSCode缓存的历史环境变量。
- 在应用商城中搜索TecoHotSpots扩展,点击安装,安装完成后右下角会有弹窗,点击重新加载
- 安装时需注意,不要安装在本地,选择已连接的远程服务器安装
工程管理
创建工程
前提条件
在远程服务器创建一个空文件夹。
注意事项
在VSCode示例工程中提供的脚本为标准化脚本,在后续扩展中,请兼容此脚本,否则会导致程序调试和性能调优模块使用异常。
操作步骤
- 单击VSCode顶部菜单栏文件 > 打开文件夹,选择刚创建的空文件夹目录,单击确定。
- 在搜索框输入>,进入命令显示及搜索模式,或者使用键盘F1键,输入TecoStudio Create Project,在搜索结果中单击该命令。
- 输入需要创建的工程名称(不含特殊字符),单击回车。
执行结果
单击左侧导航栏的,可以查看到新创建的工程文件列表。该工程包含以下4个文件:
- build.sh:构建脚本。
- CmakeLists.txt:工程文件。
- device.scpp:源文件1。
- main.scpp:源文件2。
插桩管理
配置插桩
在新增插桩前,您需要配置插桩,选择需要采集的性能项。
注意事项
- 性能项支持多选,但部分性能项存在互斥关系,请根据页面的提示信息进行选择。
- **查看代码执行开销(CYCLE)**性能项为默认选中状态。
操作步骤
- 单击VSCode顶部菜单栏的文件 > 打开文件夹,打开目标工作目录。
- 单击VSCode左侧导航栏的,插桩管理区域提供插桩配置选项。
- 根据实际情况进行选择,执行编译时可以采集相关的性能数据并进行展示。
新增插桩
您可以通过新增插桩功能,在编译前对代码进行插桩,并在编译后查看对应代码段的执行周期、指令缓存MISS次数等性能数据。
注意事项
- 插桩需要成对,如果不成对,会导致性能项数据采集异常。
- 目前暂不支持嵌套插桩,嵌套插桩,以插桩对A和插桩对B为例:
- 插桩对A和插桩对B之间产生交集。
- 插桩对A里的代码与插桩对B里的代码存在调用关系(如下图所示)。
单次插桩
执行结果
在相应的代码前,显示插桩标识,表示插桩成功。
连续插桩
- 单击VSCode左侧导航栏的。
- 在资源管理器页面,双击打开需要插桩的源文件。
- 通过快捷键Ctrl + Alt + L,开启连续插桩功能。
- 在需要新增插桩的代码行,移动鼠标光标至代码行左侧空白区域,待出现红点标识符号时,鼠标左击,为该行添加插桩。
删除插桩
删除插桩,以便进行二次选择/清空插桩对。
注意事项
插桩必须成对,如果不成对,会导致删除功能异常。目前暂不支持删除单个插桩,使用删除功能时,需要保证插桩成对出现。
如下图所示,start 0未成对执行删除动作,会提示插桩对没有完成,无法删除。
删除单个插桩对
方式一
- 单击VSCode左侧导航栏的。
- 在资源管理器页面,双击打开需要删除插桩对的源文件。
- 在需要删除插桩对的代码行,鼠标右键单击对应行号的左侧空白区域,在弹出的菜单中选择删除插桩对。
方式二
- 单击VSCode左侧导航栏的。
- 在资源管理器页面,双击打开需要删除插桩对的源文件。
- 鼠标悬停在插桩的start位置(停留在区间无效),通过快捷键Ctrl + Alt + 2进行单插桩对删除。
删除所有插桩对
- 单击VSCode左侧导航栏的。
- 在运行和调优页面的插桩管理区域,单击删除全部插桩按钮,删除工程里的所有插桩对。
编译脚本
前提条件
请确保编译环境已完成部署,可参考配置编译环境。
注意事项
在VSCode示例工程中,提供的脚本为标准的性能调优脚本,您在后续扩展中,请兼容此脚本,否则会导致调优模块使用异常。
操作步骤
- 单击VSCode左侧导航栏的。
- 在编译工程区域,通过选择工程文件的下拉框,选择需要编译的工程文件。
- 单击下拉框右侧的,执行编译。
执行结果
输出窗口会显示完整的编译过程。
查看性能数据
查看性能数据可以获取函数名称、执行拍数,和平均拍数等数据。
前提条件
源文件中有插桩,且插桩区间的代码可以被执行到。
操作步骤
| |