評估Visual Studio性能
在Visual Studio2008中,我們就開發人員所關心的一些常見的使用場景在Visual Studio性能上作了很大的改進.在工作中也總結關于Visual Studio性能的話述,下面就這個問題來詳細說說吧。
#t#例如,對于新的LINQ,我們設置的性能目標是:對同一個查詢,LINQ的性能必須顯著優于SqlDataAdapter,與SqlDataReader相比也必須有競爭力;從SQLServer檢索數據時,LINQ的接口必須是最輕量級的.在我們的測試過程中,我們所嘗試過的每個測試案例幾乎都表明,LINQ實際上的確比SqlDataAdapter表現更好,而在大多數那些的例外的測試案例中,完成相同的任務,LINQ比SqlDataReader落后的速度不超過10%??紤]到LINQ的強大功能,我們認為這樣的取舍是合理的。
在VisualStudio2008中我們能看到的更顯著的Visual Studio性能提高包括:
重新生成一個VisualBasic項目并運行一個后臺編譯器的速度提高到了原來的3倍,使用的內存卻只有原來的1/3。更多細節在這里。
◆在編輯器里滾動較大的C#文件的速度比原來快了一倍,鍵入新文本的速度是原來的1.5倍.
◆對C#中龐大類型的智能感應響應時間提高了至多10倍。
◆增量生成C++/CLI項目解決方案的時間最快可以提高到原來的1.9倍。更多細節在這里。
◆OfficeWord和Excel文件在服務器上處理的速度快了20倍。
◆TFS版本控制命令處理經過重寫后,能夠在不需要綁定內存到服務器上的情況下,支持無限量的關鍵命令操作。在我們的測試衡量結果中,關鍵命令的運行速度還提高了10%到60%,尤其是在比較大的項目上操作時有了很大的Visual Studio性能提高。從這-里可以看到更多關于改進TFS可測量性的工作。
我們還致力于充分利用多核硬件的優勢來提高性能。正如我以前的日志中提到的,我們對MSBuild工具增添了多線程支持。此外,使用/MP開關,您可以大大提高您的C++項目生成時間–在內部的項目里,我們看到C++前臺編譯器在雙核硬件上性能的提高最多可高達30%。.NETFramework3.5運行時的性能也有了顯著提升,我們精簡了CLR的線程池,使得各種類型的多線程應用程序得到性能改進。例如,當這些架構方面的改進與套接字端口API的改進結合在一起,并使用雙核處理器的情況下,異步套接字端口I/O的操作速度最快提高了70%。更多關于此項工作的細節在這里。
上面這些只是Visual Studio性能改進的一些重要方面,VS2008中還有許多其他的性能改進,而且我相信仍然有些地方我們能夠做得更好。像任何其他東西一樣,這是一場旅行,而非終點。