IntelliJ IDEA 2020.3提供了許多實用的功能,例如調試時的交互式提示,Git暫存支持,對Java 15記錄和密封類的擴展支持等等。它簡化了端點,框架和事件探查器的平常工做。經過基於機器學習技術的更好的代碼完成,更直觀和有用的新的「Welcome」屏幕以及更好的拼寫和語法檢查,整個UX獲得了改進。簡而言之,一切都更好!程序員
大多數發行版都側重於編輯器功能,但該節的重點是並行編譯和編譯圖表。咱們還提供了一些編輯器工具。緩存
1.並行編譯
2.編譯圖表
3.加強的軟件包前綴
4. MUnit支持
5. Scala 3改進
6.還有更多!服務器
並行編譯框架
根據官方的Scala開發人員調查,在很大程度上,long compilation times Scala程序員平常工做流程中的主要難題。機器學習
儘管加速Scala編譯器是一個有價值的目標,而且Scala編譯速度在不斷提升,可是最直接的解決方案是採用並行編譯。此解決方案也是最有效的。經過使用N內核而不是內核,編譯時間最多能夠減小N幾倍,而不是百分之幾。編輯器
具備多核處理器,大量內存和固態驅動器的現代計算機無疑能夠完成任務。所以,Scala編譯服務器如今能夠並行編譯獨立的模塊:ide
咱們已經調整了默認VM選項,以默認狀況下最多支持4個編譯線程,這能夠顯着加快編譯速度。若是您的計算機具備許多CPU內核和大量RAM,請隨時調整「Settings | Build | Compiler | Scala | Compile Server(可經過「編譯服務器」圖標上的「Configure」訪問)以進一步縮短編譯時間。工具
編譯圖性能
爲了提升並行編譯的效率,您可能須要優化項目模塊的結構和Compile Server的VM選項。可是,若是沒有明確的指導,此任務將變成猜想遊戲。雖然您能夠查看模塊依賴關係圖,可是很難說出如何根據編譯線程數來調度這些模塊。
此外,Scala文件的編譯時間能夠相差很大,所以很難僅根據源文件的數量就知道編譯一個特定模塊須要花費多長時間。最大VM堆大小也是如此:是過小仍是太大?編譯線程數如何影響RAM消耗?
爲了幫助您完成此任務,咱們在「Build」工具窗口中將「編譯圖表」添加爲「Chart 」節點:
如今,您能夠一目瞭然地判斷什麼時候有優化的潛力。這是典型的狀況:
-
一個模塊起到一個瓶頸的做用:若是不少模塊都依賴於一個須要長時間編譯的模塊,能夠考慮將該模塊拆分紅幾個部分。若是你的項目只由一個或數量有限的大模塊組成,這種方法特別適合。
除了使你的項目具備高度的可並行性以外,細粒度的模塊還能夠加快單線程編譯速度(經過使編譯器更容易解析引用),減小消耗的最大內存量(由於編譯器沒必要一次性加載全部的源碼),清理IDE的自動完成(由於在範圍內沒有超級flous類),以及解開項目類之間的依賴關係(參見最小功率規則)。 -
編譯是線程綁定的:若是看到大多數時間全部線程都被佔用,請嘗試逐漸增長最大線程數。可是請記住實際的CPU核心/線程數-爲OS和IDE保留一兩個線程,以保持UI響應能力。
-
線程數過多:若是在編譯過程當中只須要最大線程數一次或兩次,而且額外編譯的模塊相對較小,則增益僅適中,但您必須分配大部分時間未使用的額外RAM。在這種狀況下,請考慮減小最大線程數。
-
堆大小不足:若是堆大小保持接近最大值,則VM可能會進行過多的垃圾回收。即便沒有OutOfMemoryError,編譯性能也可能不會達到最佳。考慮增長最大堆大小。
-
堆大小過多:您的操做系統能夠更好地利用該內存,例如文件系統緩存,這實際上能夠提升編譯速度。
藉助更快的編譯速度和動態圖表來吸引您的注意力,「編譯」漫畫如今已成爲過去。
加強的軟件包前綴
如今,Scala插件能夠將IntelliJ IDEA的程序包前綴與Scala的連接程序包子句和相對導入結合在一塊兒。儘管這些功能中的每個都比較模糊,可是並無以指數方式增長模糊度,而是提供了一個直觀且內部一致的系統:
您再也不須要忍受空目錄鏈或一遍又一遍地重複相同的程序包前綴。如今,您能夠保持目錄和軟件包的整潔。
MUnit支持
Scala插件已經支持JUnit,ScalaTest,uTest和Specs2。如今是時候咱們將另外一個條目添加到此列表了:
如今具備對MUnit的支持,具備全部一般的優勢:
Scala 3改進
IntelliJ Scala插件已經爲即將到來的Scala 3提供了至關長的支持,而且咱們正在努力跟上全部新更新。最值得注意的是,Scala插件如今能夠理解主要方法的新語法:
工程Hello Worlds從未如此簡單!
因爲Scala 3仍在開發中,而且API還沒有穩定,所以咱們實際上只能支持一個版本的Scala3。咱們建議每晚使用Scala插件進行構建,以儘快得到「最新,最出色」的功能。在Settings | Languages | Scala | Updates | Channel選擇Nightly builds(您能夠隨時以相同的方式還原到更穩定的版本)。
更多!
此版本中還有許多其餘功能,包括性能改進和錯誤修復。
IntelliJ IDEA現已更新至2020.3,所以能夠查看IDEA的「新增功能」頁面,以瞭解與Scala也相關的平臺功能。必定要簽出Code With Me,這是一項用於協做開發和配對編程的服務,可以讓您與他人共享當前在IDE中打開的項目,並實時進行協做。