Visual Studio 2012用户界面响应速度日益提高
微软一直在描述为改善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早期版本的横向比较。因此,尽管在架构上的更 改听上去令人印象深刻,但是却难以量化这些改进。
TAG: