微軟在2019年更新Visual Studio,原生支援在WSL 1使用C++,現在進一步要在Visual Studio中原生支援WSL 2。所謂Visual Studio原生支援WSL,意思是開發者不需要以遠端連線或是配置SSH,就可以在本地端WSL中,建置和測試C++程式碼,這將能大幅改善用戶需要啟動Linux環境,才能執行程式的情況,而且也不再需要於遠端機器維護另一份程式碼。

Visual Studio對WSL 1的原生支援,所有命令都透過wsl.exe在本地端執行,WSL會從掛載在/mnt資料夾下的Windows磁碟存取檔案,由於目前這些命令在WSL 2中執行效率沒這麼好,因此官方建議用戶,只有在WSL 2可以提供更好的效能,以及100%相容系統呼叫的時候,再使用WSL 2。

現階段有兩種情況,使用WSL 1會比WSL 2效能更好,第一是檔案必須儲存在Windows檔案系統中時,WSL 1能更快地存取掛載在Windows的檔案,也就是當程式必須使用WSL Linux發布版本,來存取Windows檔案系統中的檔案,且檔案無法儲存在Linux檔案系統時,使用WSL 1能夠更有效率地跨作業系統存取檔案。

而第二個情況則是需要使用Windows和Linux工具,對同一個檔案進行交叉編譯的時候,跨Windows和Linux的檔案存取效能,WSL 1明顯比WSL 2更快,因此要用Windows應用程式存取Linux檔案,目前要選用WSL 1。

還有另一個辦法可以避免使用WSL 2帶來的效能低落,便是在本地端WSL 2中,安裝和執行SSH,並且在Visual Studio Connection Manager,新增新的SSH連線。不過還要安裝SSH,就是多一層阻礙,因此微軟決定要在Visual Studio提供WSL 2原生支援,這項支援將讓開發者可以不需要新增SSH連線,就可以在WSL 2上建置和除錯程式。

微軟採取的支援策略,是讓Visual Studio執行本地端rsync應用程式副本,將檔案從Windows檔案系統複製到WSL 2檔案系統中,當Visual Studio偵測到用戶正在使用WSL 2時,本地端rsync副本就會自動啟用,不需要用戶干預。


熱門新聞

Advertisement