VS2019編譯器後端更新彙總
一大波在途的最佳化
在Visual Studio 2019 v16。10 Preview 2中,我們繼續對C++編譯器後端進行了改進,包括:新加入了一些特性,做了一些效能最佳化,編譯吞吐量得到了一些提升,以及提升了整體的安全性。
下面我們來彙總一下,供大家參考:
> Address Sanitizer
修復了漏報和誤報的Bug,並改進了ASan測量程式碼的除錯程式的準確性。
> ARM64對/guard:ehcont的支援
/guard:ehcont編譯器開關可以新增到了編譯和連結階段,用來生成可以被作業系統在異常處理時執行安全性檢查的元資料。之前的版本中,它只會被生成且只能支援AMD64,但16。10開始,可以在編譯ARM64可執行檔案時和這個元資料一起編譯。
請參考Microsoft文件,查詢有關/guard:ehcont(Enable EH Continuation Metadata)更多的資訊。
如需瞭解如何使用ehcont來進行Control-Flow Integrity (CFI)遷移,請參考Microsoft技術部落格。
> OpenMP
編譯器開關/openmp:llvm現已在x86和ARM64平臺可用。
> 為link。exe和mspdbsrv。exe保留了更大的棧空間
為link。exe和mspdbsrv。exe(僅限x86和amd64主機)保留了更多的棧空間,從預設的1MB到4MB,以便在連結階段執行遞迴型別合併操作。
> 來自反饋資訊:在連結過程中出現了未處理的異常。
> 為amd64和x86平臺添加了一些編譯開關以啟用或者禁用SSA peeps
添加了一些編譯器開關(-post-color-ssa-peeps, post-color-ssa-peeps-)以允許使用者啟用或禁用相關的SSA peeps功能。這應該使受到過度攻擊性窺視影響的使用者可以解決他們的問題,而不必完全禁用最佳化器。
> 避免了增量連結情況下PDB檔案增加過大
來自反饋資訊:在Visual Studio進行增量編譯過程中,發現PDB檔案持續增大。
> 除錯模式下的效能最佳化
移除了非必要的執行時檢查,這可以提升除錯模式下的效能,最高可以達到3倍的提升。
> 增加了額外的對ARM64的最佳化
> 預設啟用了對x64目標平臺的volatile metadata支援,以提升模擬效能
總結
老大哥,請繼續做好C++生態。
廣大C++開發者認為你就是馬的頭。
最後
Microsoft Visual C++團隊的部落格是我非常喜歡的部落格之一,裡面有很多關於Visual C++的知識和最新的開發進展。大浪淘沙,如果你對Visual C++這門古老的技術還是那麼感興趣,則可以經常去他們那(或者我這)逛逛。
本文來自:《MSVC Backend Updates in Visual Studio 2019 version 16。10 Preview 2》
相關文章
- 2021-06-23Vite + React 元件開發實踐
- 2021-06-10有人說Java是為女孩子準備的語言, 然後以C++對比? 原因竟是這?
- 2021-05-11VS2019: C++程式碼靜態分析改進和更新
- 2021-05-08STM32入門教程(一):開發環境搭建
- 2021-04-16谷歌斷供GMS, 華為斷供安卓程式碼, 結果拖累了小米MIUI