一起谈.NET技术,VS 2010中内核窗户问题解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:   随着微软Visual Studio 2010和.NET Framework 4.0的推出,微软向开发人员提供了创建多线程应用程序的更好的工具和类库。在这篇文章中,笔者将为您介绍Concurrency Visualizer的新功能是什么以及它能够提供什么类型的信息。

  随着微软Visual Studio 2010和.NET Framework 4.0的推出,微软向开发人员提供了创建多线程应用程序的更好的工具和类库。在这篇文章中,笔者将为您介绍Concurrency Visualizer的新功能是什么以及它能够提供什么类型的信息。

  要把Visual Studio 2010的Concurrency Visualizer功能真正地应用到业务中,你需要点击最初的资源冲突表上面的三个按钮。让我们首先点击左边的处理器利用率图表(见图4)。

  这个处理器利用率图表显示你的应用程序如何在使用处理器的整个状况的一个可视化的指标。这个图表显示Windows可用的逻辑处理器的数量。例如,在上面的图表中,一个英特尔酷睿2双核处理器在这个操作系统中启用了两个逻辑处理器。

  虽然这个剖析会话已经就位,但是,Visual Studio不仅要收集有关你的应用程序的信息,而且还要收集这个系统中每一个其它进程使用处理器的信息。采用默认的颜色方案,你自己的应用程序的处理器利用率用绿色显示,其它进程用黄色显示,空闲时间用灰色显示。

  在屏幕的上方,你可以看到一个滑动条。你可以使用这个滑动条放大和缩小这个图表。你还可以选择这个图表中的一个区域直接放大到选择中。这个图表是以时间为基础的:时间从左边向右边运行并且按照毫秒(也就是千分之一秒)显示。

  成功的线程的一个指标是你的应用程序的处理器使用能够超过一个逻辑处理器的限制。如果你的应用程序是计算密集型的,你的应用程序的绿色区域越接近图表的顶端,这个应用程序利用系统中多个逻辑处理器的效率就越高。

  Visual Studio提供的第二个、也是更有趣的图表是线程图表。要启动这个图表,可点击这个窗口上方的线程按钮,或者在上面的当前窗口下拉式菜单中选择同样名称的窗口。

  这个线程图表(图5)显示在你的应用程序生命周期期间存在的全部线程,当你执行这个应用程序的时候显示绿色,在等待同步的时候显示为红色,在执行输入/输出操作的时候显示紫色,或者在休眠的时候显示为蓝色。你看的图表中的绿色线条越多,通常就越好。此外,除了这个线程之外,你在上面还能看到两条线,用于监视硬盘读和写。如果你有一个以上的硬盘,那么,每一个硬盘都要增加两条线。

  再说一次。你可以使用鼠标放大这个图表或者选择使用上面的放大滑动条。你还可以从左上角排序这个图表。在默认状态下,线程是按照开始时间排序的。但是,你还可以通过监视的操作或者停止时间排序。

  除了基本的排序之外,这个线程图表允许你使用顶端的箭头按钮按照方便的次序排列线程。这个功能是有用的,如果你需要比较两个或者更多的线程的功能的话。通过把这些线程相互之间紧密地排列在一起,你的工作会更容易。

  当你要微调一个特定时间段的时候,这个线程图表中显示的线程图表完全是可点击的。这意味着在放大到足够近的时候,你能够看到以不同颜色表示的段。你可以点击每一个段查看一个特定的段的详细信息。还需要指出的是,每当你点击一个段的时候,Visual Studio如何在这个图表下面给你一些额外的指令。

  每当你在线程图表中点击一个段的时候,你在这个图表下面都能看到包含有趣的信息的额外标签。例如,Visual Studio能够向你显示一个所谓的解除封锁的栈。这个栈向你提供有关允许另一个线程运行的一个线程的信息。这个示意标签也是有用的。这个非神秘化(Demystify)按钮向你提供有关这个产品中的一个特定功能的更多信息。Concurrency Visualizer功能提供的第三个主要窗口叫做内核(Cores)。从技术上说,这个名称不是很准确,因为这个内核功能的目的是显示你的应用程序利用系统中的多个逻辑处理器的效率如何。

  然而,这个内核功能将发挥作用,即使你有多个物理处理器而不是多个内核。这种情况的发生是因为对于操作系统来说,一个物理处理器或者处理器中的多个内核是一样的:它们都是逻辑处理器,都能够在上面执行线程。但是,即使有这么小一点的技术准确性,“内核”这个词在这个案例中有理由是正确的,因为目前的大多数系统事实上都是采用多核处理器,而不是采用多个处理器。

  这个内核窗口(见图6)允许你看到一个时间表,在这个系统上的每一个逻辑处理器上能够执行多少工作。就像使用其它两个窗口一样,你可以方法内核图片,把鼠标放在时间表上查看更多的细节。这个图表上的每一个线程都有不同的颜色,图表的下面显示文字说明。如果你的应用程序包含十几个线程,发现不同的颜色是很困难的,但是,在大多数情况下,这个图片的是很容易使用的。

  理解图片

  要能够看到关于你的线程的详细信息和这些线程是如何运行的对于开发人员的工具箱都是一个极好的增加的工具。然而,你编写的应用程序越复杂,理解这些图片和细节的含义就越重要。如果把事情简化一些,目前开发人员最紧迫的需求是保证应用程序能够最充分地利用当前处理器的多个内核。这个事情本身就有些复杂,但是,当你要保证你的代码开足油门运行的时候,这个事情就会更复杂。这要求理解不同的性能瓶颈以及它们如何在微软Visual Studio显示的不同的剖析图表中表现自己。

  完全理解这些图表是另一篇文章的话题。但是,你首先可以从一个很好的小的Visual Studio 2010帮助主题开始。这个主题的名称是“行为糟糕的多线程应用程序的常见方式”,可以在网络上的MSDN说明文件中找到。

  结论

  在这篇文章中,我们学习了名为“Concurrency Visualizer”的Visual Studio 2010的新功能是什么以及它能够提供什么类型的信息。此外,你了解到你至少需要一个高级版本的微软Visual Studio软件来使用这个功能。即使使用高级版本,你还需要使用至少Windows Vista操作系统。

  特别是如果你在使用Task Parallel Library (TPL,任务并行库)或者PLINQ连接你的应用程序,那么,你将从微软Visual Studio 2010中提供的新的调试和剖析工具中得到极大的好处。例如,通过使用Concurrency Visualizer把新的并行栈与并行任务结合在一起,这将更容易保证你的应用程序最充分地利用现代的多核处理器。

目录
相关文章
|
17天前
|
机器学习/深度学习 人工智能 自然语言处理
AI技术深度解析:从基础到应用的全面介绍
人工智能(AI)技术的迅猛发展,正在深刻改变着我们的生活和工作方式。从自然语言处理(NLP)到机器学习,从神经网络到大型语言模型(LLM),AI技术的每一次进步都带来了前所未有的机遇和挑战。本文将从背景、历史、业务场景、Python代码示例、流程图以及如何上手等多个方面,对AI技术中的关键组件进行深度解析,为读者呈现一个全面而深入的AI技术世界。
83 10
|
3天前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
3天前
|
缓存 网络协议 安全
融合DNS技术产品和生态
本文介绍了阿里云在互联网基础资源领域的最新进展和解决方案,重点围绕共筑韧性寻址、赋能新质生产展开。随着应用规模的增长,基础服务的韧性变得尤为重要。阿里云作为互联网资源的践行者,致力于推动互联网基础资源技术研究和自主创新,打造更韧性的寻址基础服务。文章还详细介绍了浙江省IPv6创新实验室的成立背景与工作进展,以及阿里云在IPv6规模化部署、DNS产品能力升级等方面的成果。此外,阿里云通过端云融合场景下的企业级DNS服务,帮助企业构建稳定安全的DNS系统,确保企业在数字世界中的稳定运行。最后,文章强调了全链路极致高可用的企业DNS解决方案,为全球互联网基础资源的创新提供了中国标准和数字化解决方案。
|
4天前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
|
4天前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
|
3天前
|
缓存 边缘计算 网络协议
深入解析CDN技术:加速互联网内容分发的幕后英雄
内容分发网络(CDN)是现代互联网架构的重要组成部分,通过全球分布的服务器节点,加速网站、应用和多媒体内容的传递。它不仅提升了访问速度和用户体验,还减轻了源站服务器的负担。CDN的核心技术包括缓存机制、动态加速、流媒体加速和安全防护,广泛应用于静态资源、动态内容、视频直播及大文件下载等场景,具有低延迟、高带宽、稳定性强等优势,有效降低成本并保障安全。
22 3
|
24天前
|
机器学习/深度学习 人工智能 自然语言处理
秒级响应 + 99.9%准确率:法律行业文本比对技术解析
本工具基于先进AI技术,采用自然语言处理和语义匹配算法,支持PDF、Word等格式,实现法律文本的智能化比对。具备高精度语义匹配、多格式兼容、高性能架构及智能化标注与可视化等特点,有效解决文本复杂性和法规更新难题,提升法律行业工作效率。
|
21天前
|
数据采集 存储 JavaScript
网页爬虫技术全解析:从基础到实战
在信息爆炸的时代,网页爬虫作为数据采集的重要工具,已成为数据科学家、研究人员和开发者不可或缺的技术。本文全面解析网页爬虫的基础概念、工作原理、技术栈与工具,以及实战案例,探讨其合法性与道德问题,分享爬虫设计与实现的详细步骤,介绍优化与维护的方法,应对反爬虫机制、动态内容加载等挑战,旨在帮助读者深入理解并合理运用网页爬虫技术。
|
1月前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
27天前
|
机器学习/深度学习 自然语言处理 监控
智能客服系统集成技术解析和价值点梳理
在 2024 年的智能客服系统领域,合力亿捷等服务商凭借其卓越的技术实力引领潮流,它们均积极应用最新的大模型技术,推动智能客服的进步。
70 7

推荐镜像

更多