更快更方便的 Visual Studio “15” Preview 5 發佈囉!
今天我們發佈了 Visual Studio “15” Preview 5。這次的 Preview,我想要把重點放在效能上的改進,而在未來幾天也會有一些後續文章有關我們看到的效能改善。我也會指出一些我們所做的生產力改善。
所以來下載安裝器吧!然後繼續閱讀以下的介紹。您也可以在這取得發佈公告。
效能與內存效率大躍進
我想一開始先透過一個並行的影片,讓您可以一次對所有的效能改善有初步的了解。這個影片比較了從開始 Visual Studio 到載入整個 .NET 編譯器平台「Roslyn」方案的時間,相較於 Visual Studio 2015 的 60 秒,Visual Studio ‘15’ 僅花了 30 秒:
有較快的載入時間是因為我們所做的許多改善 – 輕量化專案負載與依需求載入擴充。下面列出了一些在 Preview 5 中關鍵的改進:
- 輕量化專案負載縮短了方案載入時間:在進行至少包含 100 個專案的方案,並不代表您需要在同時間使用所有的檔案或專案。VS “15” 提供了編輯與偵錯的功能,而不須等待 Visual Studio 載入每一個專案。您可以在 Preview 5 試試這個功能,從 Tools > Options > Projects and Solutions 開啟「Lightweight Solution Load」。
- 依需求載入擴充加快了啟動速度:這個想法很簡單:在需要擴充的時候載入它們,而不是在VS 啟動的時候。在 Preview 5 我們開始移動我們的 Python 與 Xamarin 擴充來使它們依需求載入,並將所有 Visual Studio 與第三方擴充供應商提供的擴充移動到這種模式。好奇哪些擴充影響了啟動速度、方案載入與打字效能嗎?您可以到 Help > Manage Visual Studio Performance 查看這些資訊。您有在開發擴充嗎?我們將會發佈指引來幫助擴充開發人員可以轉向依需求載入的模式。
- 將子系統從 VS 主程序移到分離的程序:我們移動了一些內存密集的工作到分離程序,像是 Git Source Control、我們的 JavaScript 與 TypeScript 語言服務。這讓您比較不會因為在 Visual Studio 主程序中執行的程式或 Visual Studio 變得呆滯,甚至因主程序接近 4GB 的內存限制導致崩潰,而感到延遲。我們會持續在未來的發佈中把元件從程序中移出。
- 更快的 C++ 專案載入、編碼與偵錯:我們讓載入 C++ 專案的速度更快了。您可以透過這個影片來看看我們的改善。您可以開啟這個功能,透過在 Tools > Options > Text Editor > C/C++ > Experimental 中設定「Enable Faster Project Load」為 True。我們也改善了我們的連結器與 PDB 載入函式庫,來增加建置與更快速地啟動偵錯器,同時在偵錯時大量地減少內存消耗。
- 改善使用 Git 、偵錯與編輯 XAML 程式碼的速度:我們改善原始檔控制作業的速度,透過從 libgit2 切換到 git.exe。我們也改善了偵錯的效能,透過最佳化初始成本與其他有關 IntelliTrace 與 Diagnostic Tools 視窗的成本,並移除了幾個會發生在編輯 XAML 檔的延遲。
這還只是開始而已,我們致力於進行這樣的改進,來讓 Visual Studio 啟動更快速更靈敏,並使用更少的內存。留意未來在 Visual Studio 部落格上的貼文,我們將深入討論這些改進背後的技術細節。
我們嚴格地測試這些更動,來及早發現問題並提供最棒的效能,但現實世界中的程式碼並沒有替代品。因此我們需要您的幫助!請安裝 Preview 5 用它來執行您的大型方案,並透過 IDE 中的 Report-a-problem 告訴我們您的想法。
生產力的改善
Visual Studio “15” 也有許多功能是針對維持高生產力。
編輯程式碼
IntelliSense filtering 現在可以在 C#、VB 與 C++ 中使用了。在探索複雜的 API 時,可以縮小到只有您需要的類型(例如:方法、屬性或事件)。在 C# 與 Visual Basic 我們確定某個位置需要的「目標類型」,並預先在清單中選擇符合該類型的項目。這加速了您的打字速度,而且不再有必須要弄清楚某特定位置預期類型的困擾了。
在 C++,實驗性的 Predictive IntelliSense 功能顯示過濾過的 IntelliSense 清單,您就不需要在滾動一個很長的清單了。基於需要的可能性,只有那些預期類型的項目會被列出來。您可以在 Tools > Options > Text Editor > C/C++ > Experimental 將這個功能開啟。
在 XAML,我們新增了 x:Bind 的 IntelliSense 完成模式,當您試圖要綁定屬性與事件時,提供一個完成的清單。命名空間完成提供自動完成(auto-complete)的功能,如果參考的命名空間已經存在。XAML IntelliSense 也已經更新,來篩掉不符合的類型與屬性。選擇最接近的匹配結果,所以您就只會看到相關的結果,而不用再滾動長長的類型清單了。
在 JavaScript,我們已經完全地改變搭載 IntelliSense 的語言服務。之前,當您在打字時,JavaScript 引擎持續地執行您的程式碼來提供 runtime-like 的完成清單與簽章幫助。這對於動態的 JavaScript 程式碼來說很棒,然而它時常造成不一致的編輯體驗。新的語言服務使用搭載 TypeScript 的靜態分析,來提供更多詳盡的 IntelliSense,完全涵蓋 ES6/ES7,讓您有更一致的編輯體驗。
快速修復與重構
為了幫助您維護一個可讀的程式碼庫,並促進您的開發工作流程,我們新增了更多對於 C# 與 Visual Basic 的快速控制項目與重構。移動類型到對應的檔案( Move Type to Matching File ) 移動一個類型到一個與類型名稱相同的新檔案,而同步檔案與類型名稱( Sync File and Type Name ) 提供您選項更改您的類型名稱來對應到您的檔案名稱(反之亦然)。最後,轉換成內插字串( Convert to Interpolated String ) 讓您透過轉換您的「string.Format」表達式到內插字串,擁抱 C# 6.0 與 VB14 的美好。
巡覽程式碼
四處瀏覽而還知道自己在程式碼庫的哪裡是很不容易的;我們新增了幾個新的巡覽功能來幫助您。Go To : (Ctrl + , 或 Ctrl + T)讓您可以迅速地在您的程式碼中找到檔案、類型、方法與其他各種物件。
Find All References(Shift + F12)現在讓您更容易四處瀏覽,甚至是在複雜的程式碼庫。它提供進階分群、篩選、排序、從結果中進行搜尋與(對某些語言)著色,這樣您就可以清楚地理解您的參考。
偵錯
在 Preview 5 我們引進了一個實驗性的功能:Run to Click。您不再需要設定一個暫時的中斷點來跳躍至此並停在您想要的那一行。當偵錯器停止時,只要點選出現在您滑鼠游標所在的那行程式碼旁邊的圖示。每當程式執行到那行的時候就會停止在那行。您可以在 Debug > Options > Enable Run to Click 來開啟這個功能。
新的例外輔助程式(The New Exception Helper ) :用新的例外輔助程式來更快速地查看您需要的東西。清楚迅速地查看最有用的例外資訊,包含查看什麼變數為空值,立即取得內部例外式,透過緊鄰的非 modal 對話框。
快來試試看!
您可以到 Visual Studio “15” Preview 5 發佈公告頁面,查看這次發佈內容的完整清單,還有一些已知問題。
這裡有一些關於 Preview 5 的重要注意事項。首先,這是一個尚未支援的預覽版本,所以請不要將它安裝到您從事重要生產工作的機器上。第二,Preview 5 應該要與先前的 Visual Studio 版本並行使用,但您必須在開始安裝程序前,移除任何先前的 Visual Studio “15” Preview 安裝。您可以到 Preview 5 FAQ 查看一些其他的常見問題。
一如往常,非常歡迎您給予我們回饋。如果有問題的話,可以透過 Report a Problem 的選項來讓我們知道,從安裝程式到 Visual Studio IDE 本身的問題都可以唷!您可以在 developer community 入口網站追蹤您的回饋。如果是有建議的話,可以透過 UserVoice 來讓我們知道。
最後,您可以查看 Mitra 的貼文來了解更多有關即將到來的開發者大會 Connect(); 2016。
本文翻譯自 Announcing Visual Studio “15” Preview 5
若對以上技術及產品有任何問題,很樂意為您服務! 請洽:台灣微軟開發工具服務窗口 – MSDNTW@microsoft.com