在调出VS2012的并发可视化时,弹出异常"Concurrentcy Visualizer无法启动,因为当前正在进行ETW收集",如下图
后来查找资料,查了很久,终于在《》一文中找到线索。
按照文中的说法,需要在性能管理器中右击性能会话,然后点开属性进行相应的设置,可是并发可视化工具在开启进直接异常了,这又怎么会有会话呢?既然直路走不通,那就绕路走。先建一个性能会话再说。下图是启动的过程。
注意在Chapter10的项目选择时,依据实际的项目情况进行选择。经过这些操作之后,进入性能分析画面。如下图
分析完成后,会生成结果。如下图
这个性能分析结果也可以用作分析用。有了这些之后,那么我们再看看性能资源管理器(见上图的左侧)。点开后,进行设置。见下图
设置完成后,在性能资源管理器中右击该对话,再次启动,见下图。
这时,会弹出ETW停止的对话框,见下图
点击确定后,又会再次进行性能分析。这一次性能分析可以直接停止分析,不必等到最终结果。
ETW被强制停止并重新设置后,这时就可以启动并发可视化工具了,见下图。
下一步之后,直到完成。这时就会启动可视化分析,进入收集跟踪界面,如下图。
之后就等待,在收集跟踪完成后,进入分析画面,如下图
分析完成后,生成可视化报告,如下图。
如果是在VS2010,那么设置方式会比较简单,因为启动之后,会直接弹出对话框要求重置ETW。下图是启动的过程(ETW重置画面跟前面的类似就不再截图了)。
在并发可视化分析的时候,有几点需要注意
1、需要添加符号列表,具体设置见下图。
2、在分析过程中,程序中需要交互的还是需要进行相应的交互,比如点击、输入数据等,就是进行正常的软件操作。
3、可能还要增加注册表的设置,以确保ETW事件能够完全。下面是注册表的内容,直接复制到记事本中,然后重命名为.rge后缀的文件即可。其中VS2010用10.0,VS2012用11.0.
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\VSPerf\Monitor]
[HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\VSPerf\Monitor\EtwConfig] "FlushTimer"=dword:00000000 "BufferSize"=dword:00000100 "MinBuffers"=dword:00000200 "MaxBuffers"=dword:00001024
转载请注明出处