写点什么

Visual Studio 2012 用户界面响应速度日益提高

  • 2012-09-25
  • 本文字数:952 字

    阅读完需:约 3 分钟

微软一直在描述为改善 Visual Studio 2012 而着手进行的各种改进。Larry Sullivan 介绍了由 Visual Studio 开发团队成员 Duke Kamstra 和 Chuck England 提供的最新消息,涉及 VS 工具箱(Toolbox),以及他们以何种方式来减轻主用户界面渲染线程的负担。

讨论一开始,回顾了 VS 团队从 PerfWatson 工具中获得的性能跟踪报告。该报告显示,在关闭解决方案时,大型项目中的工具箱会阻塞“Visual Studio 用户界面 30 秒”。此外,工具箱的性能还会受到设计器的影响,如 Windows Form 设计器、及 WPF 设计器。

这种影响是由于工具箱的渲染方式造成的。工具箱所显示的组件列表是由基础安装中的部分组件构成的,而基础安装是微软及其(如果有的话)第三方供应商提供的。然而另一类用户组件则是由用户在特定的用户项目中定义的。

尽管第一类组件没有太大变化,不过第二类组件则需要 Visual Studio 在加载解决方案时,搜索所有应该显示的组件。性能跟踪报告指出,“随着解决方案规模及复杂度的增长,查找用户控件所导致的性能损耗会成比例上升”。

为改善性能,他们重新检查了以下操作区域:

  • 加载解决方案的过程
  • 打开设计器的过程
  • 更改构建配置的过程(Debug/Release)
  • 构建解决方案的过程
  • 关闭解决方案的过程

第一项实现的改进是,要是工具箱窗口不可见,则不再耗费处理器周期去更新设计器。第二项改进是,替换了 VS2010 中 VS 如何处理工具箱改变的方法:鉴于每次组件发生变化时,VS2010 都会从工具箱窗口中移除所有显示项,然后从头开始重新加载所有需要的组件,而在 VS2012 中,工具箱会根据自上次更新后所发生的变化(添加或移除),仅替换那些被显示的组件。

要是应用程序中有需要长期运行的工作,就会给主用户界面线程增加负担。开发团队会将对繁重工作的处理从该线程中移走,从而改善响应速度。 虽然开发者用所声称的显著改进作了总结,但遗憾的是,并未提供与 VS2008、VS2010、及 VS2012 早期版本的横向比较。因此,尽管在架构上的更改听上去令人印象深刻,但是却难以量化这些改进。

查看英文原文: Increasing Visual Studio 2012 UI Responsiveness


感谢高翌翔对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-09-25 22:582558
用户头像

发布了 59 篇内容, 共 23.6 次阅读, 收获喜欢 3 次。

关注

评论

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

一文了解Validator库

百度搜索:蓝易云

html Linux 运维 Node validator

TIKV 分布式事务--Prewrite 接口详解

TiDB 社区干货传送门

TiDB 底层架构 TiKV 源码解读 TiKV 底层架构

推荐一套结合了chatgpt、gpt绘画、mj绘画的程序源码

aiisai

源码 GPT 绘画 ChatGPT MidJourney

听 GPT 讲 Deno 源代码 (12)

fliter

ConcurrentHashMap是如何保证线程安全的

百度搜索:蓝易云

Java Linux 运维 ConcurrentHashMap 云服务器

Hover即将在DAO Maker上启动其公开发售

股市老人

OpenAI 推出的文生视频 Sora,目前 AIGC 视频的天花板,会让多少公司望而生畏?

派大星

Open AI

架构误区系列19:Big API

agnostic

架构设计实战

Base 链上最火的 meme 叙事:All Your Base Are Belong To Us($AYB)

股市老人

报错:Cannot read properties of undefined (reading ‘$message‘)解决方法

百度搜索:蓝易云

JavaScript typescript 云计算 运维 云服务器

TiDB in 2023, 一次简单的回顾丨PingCAP 唐刘

PingCAP

数据库 分布式 云原生 TiDB

在中国做 DePIN?你需要明白风险与机遇

TechubNews

JavaScript中exec()方法详解

百度搜索:蓝易云

JavaScript Linux 运维 云服务器 exec

关于ERPNext的树形结构研究

麦兜

Emotion Wheel: A powerful tool to identify emotions

xiaoxi666

心理学

【ubuntu】DNS设置工具resolvectl安装教程

百度搜索:蓝易云

Linux ubuntu 运维 云服务器 resolvectl

【组织】读《领导力》

极光一号。

架构的技巧

agnostic

架构设计原则 架构设计实战

mysql超出最大连接数解决方法

百度搜索:蓝易云

MySQL 云计算 Linux 运维 云服务器

Covalent Network与卡尔加里大学建立合作,推动区块链技术创新

股市老人

通过 Prometheus 编写 TiDB 巡检脚本(脚本已开源,内附链接)

PingCAP

数据库 TiDB

“分布式透明化”在杭州银行核心系统上线之思考

PingCAP

数据库 TiDB 银行业

starknet财神开始发红包了

币离海

以太坊 空投 starknet

Nop平台的定位和发展规划

canonical

DDD 低代码 可逆计算 Nop平台

听 GPT 讲 client-go 源代码 (1)

fliter

黄东旭:“向量数据库”还是“向量搜索插件 + SQL 数据库”?丨我对 2024 年数据库发展趋势的思考

PingCAP

数据库 分布式 TiDB

听 GPT 讲 Deno 源代码 (13)

fliter

中国比特币矿工的新根据地:埃塞俄比亚

TechubNews

BTC

一篇文章彻底搞懂 TiDB 集群各种容量计算方式

PingCAP

数据库 TiDB

vue项目中package.json的个人见解

百度搜索:蓝易云

Linux 运维 Vue 云服务器 package.json

苹果Vision Pro与头显新应用

算AI

人工智能 创业 创新

Visual Studio 2012用户界面响应速度日益提高_语言 & 开发_Jeff Martin_InfoQ精选文章