Visual Studio 2010特性聚焦:分析和调试并行应用程序
来源:互联网 发布:网络渗透测试 编辑:程序博客网 时间:2024/04/29 11:21
Visual Studio 2010将为分析和调试并行应用程序带来一些新的功能。他们试图解决的一个主要问题是,在设计时的源代码和运行时代码之间存在的黑盒。在设计时,代码使用 PLINQ或Parallel.For以声明的方式来表示;而当运行时,它又以独立线程的方式来表示。直到调试器介入之前,两层之间发生的事情都无法直接 地查看到。为了解决这个问题,微软打算把调试器的关注点提高到一个更高的抽象层次,称之为任务级。
若要理解它的工作方式,重点是要理解PLINQ和Parallel.For都是构建于任务并行库(Task Parallel Library)之上的。虽然这样说有点过于简单化,但人们可以把并行操作认为是一些任务集合,它们依次运行在线程集合之上。
为了看到现在VS里的任务发生的事 情,开发人员需要独立地检查每个线程。通过VS 2010,一个新的窗口将直接显示任务。每个任务被显示为一个包含了它的调用堆栈和传入参数的信息框中。共享同一个调用堆栈的多个任务将会在同一个信息框 中列出。如果这些任务具有公共的基任务,但在调用堆栈中被进一步拆分,那么它们将使用单独的子信息框分别显示它们。
除了堆栈,人们还可以查看方法视图。这里关注的是一个给定方法,而不是关注它如何被调用,它通过父子信息框显示被选定方法调用了哪些方法,以及它被哪些方法调用。
一个独立的视图还显示了任务是如何与它创建的子任务相关联的。默认情况下它使用一个层级网格来显示诸如任务是否已经开始和它正在等待什么之类的信息。它还支持通过任意列进行分组和排序。
在分析功能上,新增了三个新的工具。第一个是一个跟踪器,用于显示每个处理单元(Core)的CPU使用情况。对于每个时间片,它用一个堆积条形图 来显示有多少处理单元被应用程序使用、空闲或被其他系统进程使用。这就允许开发人员可以快速地查看应用程序是否消耗了提供给它的所有资源。
第二个工具为每个线程显示了一条时间线。在任何给定 的时间点上,对于线程的调用堆栈和延时时间都可以显示出来。延时是按照特定的类型来分组的,例如代码在执行中、在等待锁中或在等待IO处理中。当使用类似 Parallel.For这样的构造的时候,标记符将标明并行循环什么时候开始和结束。
第三个工具可以显示线程是如何映射到处理单元上的。它以时间线的方式来显示,人们能够快速地查看到用不同颜色来显示的线程如果在处理单元之前迁移的话,上下文切换是否太频繁。这非常重要,因为每次一个线程跳到不同的处理单元,就是使CPU中的高速缓存暂时无效的最好时机【译者注:这样可以充分利用高速缓存】。
Steve Teixeira、Daniel Moth和Sean Nordberg在Channel 9的视频中演示了这些特性。
查看英文原文:Visual Studio 2010 Feature Focus: Profiling and Debugging Parallel Applications
- Visual Studio 2010特性聚焦:分析和调试并行应用程序
- Visual Studio 2010的并行调试支持
- visual studio 2010 特性分析
- Visual Studio 2010并行编程及调试诊断功能
- visual studio 2010 中的并行调试任务窗口无效
- Visual Studio 2010并行编程及调试诊断功能详解
- Visual Studio调试多线程应用程序
- 在 Visual Studio 中调试多线程应用程序
- Visual C++ 2010 新特性:并行计算
- Visual Studio 2010新特性
- Microsoft Visual Studio 2010 新建和运行 mvc web应用程序
- 演练:调试并行应用程序
- Visual Studio 2010远程调试
- Visual Studio 2010调试技巧
- Visual Studio 2008开发新特性系列课程(10):使用Visual Studio 2008和.NET Compact Framework 3.5创建Mobile应用程序
- Visual Studio 2008开发新特性系列课程(10):使用Visual Studio 2008和.NET Compact Framework 3.5创建Mobile应用程序
- 关于工作的并行和聚焦
- 将 Visual Studio .NET 调试器用于 ASP.NET 应用程序
- 百度与黑哨
- 光明还是暗淡 探寻中国开源软件业的前途
- F4IF_INT_TABLE_VALUE_REQUEST返回多个值
- rtx51tiny 印象
- VC模仿超炫QQ界面的实现
- Visual Studio 2010特性聚焦:分析和调试并行应用程序
- N85 code对照表
- 打开新的窗口与保住页面的referrer
- Ant命令行选项
- 郭雨春:三十年之悟 CIO要拿得起放得下
- mozilla美国工程师两秒钟制造百度山寨版
- 顾问成长(9)-你是知识型顾问还是知道型顾问
- 转帖-abstract class和interface的区别
- 有感于河南移动网站速度慢----堂堂的河南移动居然