写点什么

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

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

关注

评论

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

前端冲刺必备指南-this/call/apply/bind(万字长文)

我是哪吒

学习 程序员 面试 大前端 2月春节不断更

性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

跳蚤

LeetCode 数据库刷题 - 1179. 重新格式化部门表

小马哥

七日更 二月春节不断更

这段时间学习机器学习的感受

Nydia

翻译:《实用的Python编程》01_02_Hello_world

codists

Python

手摸手Go 深入剖析sync.Pool

Leo叔叔

Go Concurrency Patterns sync.pool Go 语言

日记 2021年2月12日(周五)

Changing Lin

2月春节不断更

【LeetCode】找到所有数组中消失的数字Java题解

Albert

算法 LeetCode 2月春节不断更

并发编程系列:线上问题定位

程序员架构进阶

Java 并发 问题排查 七日更 2月春节不断更

职场心得

时间是一个人最好的证明

职场

千行百业中的我们,数字山河间的中国速度

脑极体

浅谈性能优化

跳蚤

LeetCode 数据库刷题 - 596. 超过5名学生的课

小马哥

七日更 二月春节不断更

Elasticsearch query string 分词

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

8. ㊙ Python 集合三板斧,滚雪球学 Python

梦想橡皮擦

Python 2月春节不断更 python入门

为您收录的操作系统系列 - 进程管理(加餐)

鲁米

线程 进程 同步 生产者与消费者

备战春招/秋招,开源社区系统 Echo,基于目前主流 Java Web 技术栈,并提供详细的开发文档和配套教程

飞天小牛肉

Java 开源 后端 springboot 2月春节不断更

Elasticsearch 分词器

escray

elastic 七日更 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

Python优化机制:常量折叠

Python猫

Python

定投,积沙成塔的财富增长方式

boshi

理财 七日更

书画装裱物料与选择参考

boshi

业余爱好 七日更

走进 Tokio 的异步世界

lipi

rust 异步 tokio

第四周作业

Ashley.

写一个用例(第四周)

mas

gradle中的build script详解

程序那些事

maven Gradle 程序那些事 构建脚本 构建程序

聊聊金钱

熊斌

2月春节不断更

并发编程系列:阻塞队列的实现原理

程序员架构进阶

jdk 阻塞队列 七日更 28天写作 2月春节不断更

【STM32】5分钟了解STM32的串口通信

AXYZdong

硬件 stm32 2月春节不断更

12周架构

FreeOcean

hadoop mapreduce YARN

第四周笔记

Ashley.

《我们脑中挥之不去的问题》- 卓克科普(1)

石云升

读书笔记 科普 2月春节不断更

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