写点什么

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:291810
用户头像

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

关注

评论

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

打造企业数据管理核心引擎:数据血缘的实践路径与未来演进

数造万象

数据治理 数据智能 数据管理 数据血缘 AI 问数

AI教AI:教学大模型训练平台,让教育智能触手可及

上海拔俗

当攻击快于补丁:为何2026将成为机器速度安全之年

qife122

网络安全 自动化安全

大庆二级等保合规与渗透测试的协同关系

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

YashanDB数据库多维数据分析能力与业务场景结合

数据库砖家

一文讲清如何设计一个秒杀系统(Sentinel熔断限流+令牌桶削峰)

王中阳Go

微服务 项目 电商

YashanDB数据库多线程并发控制机制及优化建议

数据库砖家

YashanDB数据库多租户架构设计及管理策略解析

数据库砖家

YashanDB数据库分布式查询优化技术全景解析

数据库砖家

Amazon OpenSearch 助力高效 RAG 系统落地

亚马逊云科技 (Amazon Web Services)

人工智能

能效即效益:MyEMS 如何帮助商业综合体实现降低空调与照明能耗?

开源能源管理系统

开源 能源管理系统

大庆三级等保合规与安全基线核查的协同关系

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

YashanDB数据库多租户架构设计与应用实战

数据库砖家

AI在线客服搭建指南:三步打造永不掉线的智能客服系统

百川云开发者

智能客服

「腾讯云NoSQL」技术之 MongoDB 篇:MongoDB 存储引擎备份性能70%提升内幕揭秘

腾讯云数据库

数据库 nosql mongodb 存储 腾讯云NoSQL

黑龙江等保合规与漏洞扫描的协同关系

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

拒绝千篇一律:出海媒体监测网站如何生成个性化舆情报告?

沃观Wovision

出海 社交媒体 海外社交媒体监控 出海媒体监测 社媒分析

YashanDB数据库多语句事务处理及其性能优化

数据库砖家

YashanDB数据库多语言支持与跨国业务应用解析

数据库砖家

MCP 发布一周年回顾:从 17 个 SEP 看 MCP 协议如何重塑 AI Agent 生态

莫尔索

MCP MCP协议 MCP Server Agent 评估 Agent Skills

MyEMS 的 “数字神经中枢”:解析其云 - 边 - 端协同架构如何实现毫秒级能效优化

开源能源管理系统

开源 能源管理系统

开源背后的硬核实力:深度剖析 MyEMS 如何用 Python 栈处理千万级点表的分钟级数据写入

开源能源管理系统

开源 开源能源管理系统

延迟队列处理订单超时(RabbitMQ死信队列实战)

王中阳Go

微服务 RabbitMQ 电商

数据源决定成败:评估出海媒体监测软件数据质量的3个关键问题

沃观Wovision

出海 社交媒体 出海媒体监测 媒体监测 社媒分析

YashanDB数据库多维数据分析功能及其企业价值

数据库砖家

出海媒体监测全托管服务:将专业的事交给专家

沃观Wovision

出海 海外舆情监测 出海媒体监测 媒体监测

AI智能体开发:让大模型从“能说”到“会做”

上海拔俗

AI大模型智能体开发:把大模型变成“会干活”的技术逻辑

上海拔俗

百度优选双11战报:智能生产力驱动全域增长,多项核心指标创历史新高

科技经济

YashanDB数据库多租户管理实战指南

数据库砖家

华系双智旗舰轿车 广汽昊铂A800内饰首发,为高速L3商用冲刺

科技经济

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