亮网络解锁器,解锁网络数据的无限可能 了解详情
写点什么

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

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

关注

评论

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

在人均配备升降桌的公司工作,是一种怎样的体验?

LigaAI

开发者 LigaAI

一款好用的Java插件 - Lombok

恒生LIGHT云社区

Java lombok

持续写作的动力

张老蔫

28天写作

我们的护城河在哪

hackstoic

商业模式

Apache APISIX 助力便利充电创领者小电,实现云原生方案

API7.ai 技术团队

运维 云原生 物联网 网关 Apache APISIX

谁在驱动、谁在引领?(14/28)

赵新龙

28天写作

性能分析之 PHP 应用进程过多导致的 page faults

zuozewei

php 性能测试 性能分析 签约计划第二季

面向 WEB 开发的 Docker(一)

devpoint

Docker 12月日更

实用机器学习笔记十三:随机梯度下降

打工人!

机器学习 AI 算法 学习笔记 12月日更

【AI最前线】精准优质-资讯|分享|热议第44期

百度大脑

人工智能

【C++20协程原理】从Linux线程、线程与异步编程、协程与异步,一文带你弄清楚

奔着腾讯去

线程 多线程 进程 协程 C++20

区块链引发了一场独特的社会运动

CECBC

TCP 拥塞控制算法

程序员历小冰

TCP 网络 28天写作 12月日更

飞桨企业版重磅发布智能边缘控制台,5分钟零代码自动化模型部署

百度大脑

人工智能 百度

44 K8S之污点与容忍度

穿过生命散发芬芳

k8s 28天写作 12月日更

大势已来,区块链的真正价值是什么?

CECBC

面向视频原生,火山引擎视频云与边缘云软硬一体的新云解决方案

火山引擎边缘云

基础设施 边缘计算 云服务 视频 云计算,

Go+ JSON 编码和解码处理教程(5.4)

liuzhen007

28天写作 12月日更

浅谈数据资产

圣迪

数据 数据资产

读《刷新》有感

将军-技术演讲力教练

Redis(三):持久化

IT巅峰技术

Java redis 架构师 分布式缓存 redis分布式

数据产品经理实战合集

第519区

内容合集 签约计划第二季 技术专题合集

Spring Cloud Config

李子捌

微服务 28天写作 12月日更

团队实行996,就有人离职,怎么办?

石云升

996 28天写作 加班文化 职场经验 12月日更

盘点前端进阶之路的零到一

速冻鱼

前端 内容合集 签约计划第二季 12月日更

贝壳Flutter体系化建设实践

贝壳大前端技术团队

技术专题合集

面向WEB开发的Docker(二):什么是Docker、镜像、编排?

devpoint

Docker Dockerfile 12月日更

阿里云手机正式公测,定义手机全新接入方式

阿里云弹性计算

阿里云 弹性云手机

音视频学习--视频特性测试

Fenngton

音视频 测试环境 签约计划第二季

不可错过的年度AI盛会 | 2021 新一代人工智能院士高峰论坛议程重磅发布

OpenI启智社区

人工智能 开源社区 院士峰会 启智开发者大会

读《思辨与立场》-03公允无偏

wood

28天写作 批判性思维 思辨与立场

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