AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

Visual Studio 2010 特性聚焦:分析和调试并行应用程序

  • 2008-10-30
  • 本文字数:1115 字

    阅读完需:约 4 分钟

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

2008-10-30 22:291480
用户头像

发布了 254 篇内容, 共 62.1 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

2020展望Android原生开发的现状,android面试试题

android 程序员 移动开发

2020年疫情下的Android开发是否还有未来,面试4个月被17家公司拒绝

android 程序员 移动开发

2020移动互联网寒冬(Android)求职随感,移动端开发框架

android 程序员 移动开发

2021Android面经,历时一个半月,斩获3个大厂offer,阿里P8大佬整理

android 程序员 移动开发

2021牛转乾坤:新花样玩转Android组件化架构实践,15K-50K的详细Android学习指南

android 程序员 移动开发

2020年上半年最接地气的Android面经,为你进大厂保驾护航

android 程序员 移动开发

最全Hadoop HDFS解析(一)

大数据技术指南

11月日更

2020面试题合集之吊打面试官系列(一),kotlin数组性能

android 程序员 移动开发

2021新鲜面经,蚂蚁内部转岗Android面试分享,深夜思考

android 程序员 移动开发

2020年8月30写篇文章,记录我的字节跳动客户端面试之旅!

android 程序员 移动开发

2020年GitHub-上那些优秀Android开源库,这里是Top10!建议收藏

android 程序员 移动开发

2020年最新字节、阿里、腾讯,移动开发技术总结

android 程序员 移动开发

2020年,初级、中级-Android-工程师可能因离职而失业吗

android 程序员 移动开发

等保测评机构推荐证书有效期是多久?到期后怎么办?

行云管家

网络安全 等级保护 等保测评 等保评测

2020荒诞的一年,35岁程序员现状:我现在房贷车贷家庭,学习Android开发的步骤,

android 程序员 移动开发

大牛手撕阿里Spring框架:AOP、IOC、注解、事务,带你统统搞定

Java spring 框架 spring aop spring ioc

2020这一年的Android面经汇总(百度、腾讯、滴滴,查漏补缺

android 程序员 移动开发

Flink 的运行架构详细剖析

五分钟学大数据

flink 11月日更

【云计算】什么是私有云?可提供哪些服务?缺点是什么?

行云管家

云计算 公有云 私有云

2021京东 Android 岗 Java 面试真题解析,android平台架构的四个层次

android 程序员 移动开发

2020跳槽过后“带薪划水”偷刷阿里老哥的面经宝典,移动客户端开发框架

android 程序员 移动开发

2020阿里巴巴,字节跳动,京东,android驱动开发环境搭建

android 程序员 移动开发

2021年尾 Android 面试之必问高级知识点(包含答案),kotlin语法大全

android 程序员 移动开发

2020年Android开发者常见面试题(一),android视频开发的面试问题

android 程序员 移动开发

2020年是意义非凡的一年,大专的我面试阿里P6居然过了,flutter视频教程12套

android 程序员 移动开发

2020年腾讯丶百度丶字节丶OPPO等Android面试大全,附带教你如何写好简历

android 程序员 移动开发

2020最全的BAT大厂面试题整理改版,flutter菜鸟教程

android 程序员 移动开发

2020请收好这一份全面-&-详细的Android学习指南,androidstudio播放音频

android 程序员 移动开发

632页!我熬夜读完这份“高分宝典”,竟4面拿下字节跳动offer

Java 程序员 算法 结构

2021 Android 大厂面试(五)插件化,androidframework开发书籍

android 程序员 移动开发

1.1 黑客与社会工程学

sec01张云龙

11月日更

Visual Studio 2010特性聚焦:分析和调试并行应用程序_.NET_Jonathan Allen_InfoQ精选文章