visual studio性能探查器

编译

再执行性能探测器时可能会报PRF0002: Instrumentation failed with these options: /u "my program" /excludesmallfuns. Please check the output window for additional details.错误。
这是由于编译时未打开profiling for executable
处理方法见:

我用的是cmake项目,最后的解决办法是在CMakelists.txt中加入一句

SET_TARGET_PROPERTIES(test_PoseClassifier PROPERTIES LINK_FLAGS "/PROFILE")

运行性能探查器

点击调试 -> 性能探查器,进行可执行文件添加。
性能探查器
选择检查后开始。
Note:

  • 如果选择了cpu使用率,则无法选择检查
  • 如果选择了事件查看器,则无法选择检查

结果报告分析

报告重点关注三个模块:

  • 调用树
  • 函数
  • 函数详细信息
    建议从调用数开始,找到热力函数后可以直接跳转到函数详细信息。
    调用树见下图:
    在这里插入图片描述
    调用树中的关键信息:
  • 热路径: 占用时间较大的调用路径
  • 调用数: 函数被调用的次数
  • 非独占时间:函数本身及该函数所调用的函数总共消耗的时间(此概念下,调用数越外层肯定消耗时间越大,从图中可看出)
  • 独占时间:抛出掉所调用函数,函数本身所消耗的时间

问题

探测器所生成的vsp报告文件某些情况下非常大,会达到十几G,并且生成后vs由于报告文件过大无法打开。目前我的处理方法时,修改源代码,只执行一部分代码以减小文件大小。还不确定是否有更好的办法。或者可以使用检查中的设置,忽略某些函数的检测。

猜你喜欢

转载自blog.csdn.net/sinat_36304757/article/details/124968903