【IT168 技术】在上一篇文章中,简单介绍了CPU占用率的可视化分析。在本文中将介绍Visual Studio 2010中关于线程可视化分析的功能。采取第一篇文章的相同步骤设置性能向导,以便在相同条件下,以不同的方式来查看同一应用的执行情况。

图1 线程分析图
每一行分别表示I/0通道或线程的状况。这个视图中,最上面的俩行表示的是I/O通道的状况,其余的表示线程的状况。在左侧的表格中给出了线程的名称和ID。在这个图标中对9条线程进行了统计分析。这里值得注意的是主线程和最后的四条用来执行应用程序的使用率较高的线程。可以通过右键点击线程,选择“hide”(隐藏)将不重要的线程隐藏一起来,以便于查看比较。

图2 去除不重要线程后的视图
现在看起来清晰多了。这个视图展现了整个程序执行过程中的线程状态。这里X轴表示时间。根据时间线标记的整个过程显示,主线程在大部分时间是红色的,说明主线程在大部分时间里所做的是同步。同样可以注意到,四个工作线程大部时间里在执行程序。这样就可以发现,主线程生成的四个工作线程执行了所有的计算。同时,主线程主要是等待工作线程完成后做一个联接调用。统计信息也会随着对线程的隐藏和展现而更新调整。这样就可以更精确和更清晰的为我们呈现出我们想要的信息了。
当工作线程结束任务后,会从图表中消失。当所有工作线程消失的时候,主线程的活动也将结束。此时主线程将变成蓝色,表示主线程进入了休眠状态。
通过这张分析视图可以发现拥有同样负荷的工作线程不是同时结束的,其主要原因可能是具有优先权的其他进程的占用造成的,图中用黄色部分表示了出来。
这里只是做了一个简要的介绍,但是,程序产生的统计分析视图还是能够如实的反应多线程的执行情况的。