微軟近日在官方開發者博客上發表聲明,宣布將全面提升Type的性能,旨在優化開發者在使用過程中的體驗。
據微軟介紹,Type的核心優勢在于為開發者提供卓越的使用體驗。然而,隨著項目規模的擴大,Type在應對大型代碼庫時的表現不盡如人意。開發者在處理大型項目時,常常面臨編輯器啟動緩慢以及代碼檢查和構建時間過長的問題,這迫使他們不得不在編輯器啟動速度和代碼完整性之間做出妥協。
為了改善這一狀況,微軟決定對Type的編譯器和工具進行本地化移植。這一舉措預計將大幅提升編輯器的啟動速度,并將構建時間縮短至原來的十分之一,同時顯著降低內存使用。
微軟透露,通過移植現有代碼庫,他們計劃在2025年中推出支持命令行類型檢查的本地化實現tsc的預覽版,并在年底前提供功能完備的解決方案,涵蓋項目構建和語言服務。開發者將能夠從微軟新的工作倉庫中構建和運行Go代碼,該倉庫的許可證與現有的Type代碼庫保持一致。
微軟官方測試顯示,本地化實現已經能夠成功加載多個流行的Type項目,包括Type編譯器本身。以下是在GitHub上不同規模的流行代碼庫上運行tsc的時間對比:
鑒于開發者大部分時間都在代碼編輯器中度過,微軟特別強調提升編輯器的性能至關重要。他們希望編輯器能夠快速加載大型項目,并在各種情況下保持快速響應。通過本地化實現,微軟將能夠提供極為流暢的編輯器體驗。
以Visual Studio Code代碼庫為例,在高性能計算機上,當前編輯器加載整個項目需要約9.6秒。而使用本地化語言服務后,這一時間縮短至約1.2秒,項目加載速度在編輯器場景中提升了8倍。這意味著從用戶打開編輯器到在Type代碼庫中開始鍵入,整個過程將變得更加高效。微軟預計,所有項目都將享受到這種級別的加載時間改進。
優化后的Type在內存使用方面也有了顯著改善,總體內存使用量約為當前實現的一半,且有望進一步降低。同時,所有語言服務操作,如代碼補全、快速信息提示、跳轉到定義和查找所有引用等,在編輯器中的響應速度也將大幅提升。微軟還計劃轉向語言服務器協議(LSP),以更好地與其他編程語言實現對齊。
據悉,目前最新的Type版本為5.8,而5.9版本即將面世。基于Javascript的代碼庫將繼續開發至6.x系列,其中Type 6.0將引入一些棄用和破壞性更改,以適應即將到來的原生代碼庫。當原生代碼庫與當前Type達到足夠兼容性時,微軟將發布Type 7.0。為了清晰起見,微軟將這兩個版本分別稱為Type 6(JS)和Type 7(native),并將作為未來一段時間內的命名方式。