写点什么

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

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

关注

评论

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

Python 核心技术与实践 input&output

Bonaparte

半导体行业个人理解

老壳有点爽

芯片 半导体 集成电路 IC

集成电路设计概括

老壳有点爽

芯片 集成电路 IC

物理实现(Physical Implementation)

老壳有点爽

芯片 集成电路 IC 物理设计 PI

最初芯片国产化是怎么来的?

老壳有点爽

芯片 集成电路 国产化 替代

MySQL备份与恢复场景示例

Simon

MySQL

成都信息工程大学的区块链工程成全国首个区块链工程本科专业

CECBC

区块链技术 区块链工程

魅力非凡的半导体电路行业

老壳有点爽

芯片 集成电路 IC 芯片营销

模拟电路设计工程师发展九段

老壳有点爽

集成电路 IC 芯片设计 模拟电路

IC设计流程及工具

老壳有点爽

芯片 集成电路 IC IC设计流程及工具

看门狗 | 分布式锁架构设计方案-01

九叔(高翔龙)

redis 分布式锁 RedLock WatchDog

数字电路后端设计流程

老壳有点爽

设计 flow 集成电路 IC

中国大陆芯片行业发展概况

老壳有点爽

芯片 集成电路 IC

Vim小技巧(2)

老壳有点爽

vim Linux 脚本语言

MySQL DDL详情揭露

Simon

MySQL

看门狗 | 分布式锁架构设计方案-02

九叔(高翔龙)

redis 分布式锁 Jedis RedLock

2020深圳站-GIAC全球互联网架构大会PPT分享

九叔(高翔龙)

架构 分布式系统 服务治理 大型网站演变 全链路压测

强势入局,区块链专利将成为银行下一个战场?

CECBC

区块链 金融 银行

世界集成电路发展概况

老壳有点爽

芯片 集成电路 IC 芯片营销

Linux指令简述&vim引入(1)

老壳有点爽

vim Linux 脚本

Golang领域模型-六边形架构

奔奔奔跑

微服务 领域驱动设计 架构设计 Go 语言

数字后端工程师发展六阶段

老壳有点爽

芯片 集成电路 IC 数字电路工程师

sed 语言学习技巧(2)

老壳有点爽

vim sed 脚本语言

Verilog 的debug技巧(1)

老壳有点爽

芯片 集成电路 IC Verilog 电路

国产数据库的经济民族

郭华

数据库 商业

PySpark RDD 基础运算和操作总结

是老郭啊

spark pyspark RDD

区块链之物流产业上链解决痛点

CECBC

区块链 供应链

芯片行业基本生态:设计生产封装的行业分工

老壳有点爽

芯片 集成电路 IC

集成电路工艺基础介绍

老壳有点爽

芯片 集成电路 IC 工艺 制程

芯片行业的主要生意模式

老壳有点爽

芯片 集成电路 IC

sed语言学习技巧(1)

老壳有点爽

vim 编程语言 sed 脚本语言

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