Visual Studio 2012用戶界面響應速度日益提高
作者 Jeff Martin 譯者姚琪琳
英文原文:Increasing Visual Studio 2012 UI Responsiveness
微軟一直在描述為改善 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)
- 構建解決方案的過程
- 關閉解決方案的過程 </ul>
第一項實現的改進是,要是工具箱窗口不可見,則不再耗費處理器周期去更新設計器。第二項改進是,替換了 VS2010 中 VS 如何處理工具箱改變的方法:鑒于每次組件發生變化時,VS2010都會從工具箱窗口中移除所有顯示項,然后從頭開始重新加載所有需要的組件,而在 VS2012 中,工具箱會根據自上次更新后所發生的變化(添加或移除),僅替換那些被顯示的組件。
要是應用程序中有需要長期運行的工作,就會給主用戶界面線程增加負擔。開發團隊會將對繁重工作的處理從該線程中移走,從而改善響應速度。 雖然開發者用所聲稱的顯著改進作了總結,但遺憾的是,并未提供與 VS2008、VS2010、及 VS2012 早期版本的橫向比較。因此,盡管在架構上的更改聽上去令人印象深刻,但是卻難以量化這些改進。