翻譯|使用教程|編輯:鮑佳佳|2020-12-09 11:15:05.480|閱讀 245 次
概述:intellij idea大多數(shù)發(fā)行版都側(cè)重于編輯器功能,但該節(jié)的重點是并行編譯和編譯圖表。我們還提供了一些編輯器工具。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
IntelliJ IDEA 2020.3提供了許多實用的功能,例如調(diào)試時的交互式提示,Git暫存支持,對Java 15記錄和密封類的擴展支持等等。它簡化了端點,框架和事件探查器的日常工作。通過基于機器學(xué)習(xí)技術(shù)的更好的代碼完成,更直觀和有用的新的“Welcome”屏幕以及更好的拼寫和語法檢查,整個UX得到了改進。簡而言之,一切都更好!
大多數(shù)發(fā)行版都側(cè)重于編輯器功能,但該節(jié)的重點是并行編譯和編譯圖表。我們還提供了一些編輯器工具。
1.并行編譯
2.編譯圖表
3.增強的軟件包前綴
4. MUnit支持
5. Scala 3改進
6.還有更多!
并行編譯
根據(jù)官方的Scala開發(fā)人員調(diào)查,在很大程度上,long compilation times Scala程序員日常工作流程中的主要難題。
盡管加速Scala編譯器是一個有價值的目標,并且Scala編譯速度在不斷提高,但是最直接的解決方案是采用并行編譯。此解決方案也是最有效的。通過使用N內(nèi)核而不是內(nèi)核,編譯時間最多可以減少N幾倍,而不是百分之幾。
具有多核處理器,大量內(nèi)存和固態(tài)驅(qū)動器的現(xiàn)代計算機無疑可以完成任務(wù)。因此,Scala編譯服務(wù)器現(xiàn)在可以并行編譯獨立的模塊:
我們已經(jīng)調(diào)整了默認VM選項,以默認情況下最多支持4個編譯線程,這可以顯著加快編譯速度。如果您的計算機具有許多CPU內(nèi)核和大量RAM,請隨時調(diào)整“Settings | Build | Compiler | Scala | Compile Server(可通過“編譯服務(wù)器”圖標上的“Configure”訪問)以進一步縮短編譯時間。
編譯圖
為了提高并行編譯的效率,您可能需要優(yōu)化項目模塊的結(jié)構(gòu)和Compile Server的VM選項。但是,如果沒有明確的指導(dǎo),此任務(wù)將變成猜測游戲。雖然您可以查看模塊依賴關(guān)系圖,但是很難說出如何根據(jù)編譯線程數(shù)來調(diào)度這些模塊。
此外,Scala文件的編譯時間可以相差很大,因此很難僅根據(jù)源文件的數(shù)量就知道編譯一個特定模塊需要花費多長時間。最大VM堆大小也是如此:是太小還是太大?編譯線程數(shù)如何影響RAM消耗?
為了幫助您完成此任務(wù),我們在“Build”工具窗口中將“編譯圖表”添加為“Chart ”節(jié)點:
現(xiàn)在,您可以一目了然地判斷何時有優(yōu)化的潛力。這是典型的情況:
一個模塊起到一個瓶頸的作用:如果很多模塊都依賴于一個需要長時間編譯的模塊,可以考慮將該模塊拆分成幾個部分。如果你的項目只由一個或數(shù)量有限的大模塊組成,這種方法特別適合。
除了使你的項目具有高度的可并行性之外,細粒度的模塊還可以加快單線程編譯速度(通過使編譯器更容易解析引用),減少消耗的最大內(nèi)存量(因為編譯器不必一次性加載所有的源碼),清理IDE的自動完成(因為在范圍內(nèi)沒有超級flous類),以及解開項目類之間的依賴關(guān)系(參見最小功率規(guī)則)。
編譯是線程綁定的:如果看到大多數(shù)時間所有線程都被占用,請嘗試逐漸增加最大線程數(shù)。但是請記住實際的CPU核心/線程數(shù)-為OS和IDE保留一兩個線程,以保持UI響應(yīng)能力。
線程數(shù)過多:如果在編譯過程中只需要最大線程數(shù)一次或兩次,并且額外編譯的模塊相對較小,則增益僅適中,但您必須分配大部分時間未使用的額外RAM。在這種情況下,請考慮減少最大線程數(shù)。
堆大小不足:如果堆大小保持接近最大值,則VM可能會進行過多的垃圾回收。即使沒有OutOfMemoryError,編譯性能也可能不會達到最佳。考慮增加最大堆大小。
堆大小過多:您的操作系統(tǒng)可以更好地利用該內(nèi)存,例如文件系統(tǒng)緩存,這實際上可以提高編譯速度。
借助更快的編譯速度和動態(tài)圖表來吸引您的注意力,“編譯”漫畫現(xiàn)在已成為過去。
增強的軟件包前綴
現(xiàn)在,Scala插件可以將IntelliJ IDEA的程序包前綴與Scala的鏈接程序包子句和相對導(dǎo)入結(jié)合在一起。盡管這些功能中的每一個都比較模糊,但是并沒有以指數(shù)方式增加模糊度,而是提供了一個直觀且內(nèi)部一致的系統(tǒng):
您不再需要忍受空目錄鏈或一遍又一遍地重復(fù)相同的程序包前綴。現(xiàn)在,您可以保持目錄和軟件包的整潔。
MUnit支持
Scala插件已經(jīng)支持JUnit,ScalaTest,uTest和Specs2。現(xiàn)在是時候我們將另一個條目添加到此列表了:
現(xiàn)在具有對MUnit的支持,具有所有通常的優(yōu)點:
Scala 3改進
IntelliJ Scala插件已經(jīng)為即將到來的Scala 3提供了相當長的支持,并且我們正在努力跟上所有新更新。最值得注意的是,Scala插件現(xiàn)在可以理解主要方法的新語法:
工程Hello Worlds從未如此簡單!
由于Scala 3仍在開發(fā)中,并且API尚未穩(wěn)定,因此我們實際上只能支持一個版本的Scala3。我們建議每晚使用Scala插件進行構(gòu)建,以盡快獲得“最新,最出色”的功能。在Settings | Languages | Scala | Updates | Channel選擇Nightly builds(您可以隨時以相同的方式還原到更穩(wěn)定的版本)。
更多!此版本中還有許多其他功能,包括性能改進和錯誤修復(fù)。
IntelliJ IDEA現(xiàn)已更新至2020.3,因此可以查看IDEA的“新增功能頁面,以了解與Scala也相關(guān)的平臺功能。一定要簽出Code With Me,這是一項用于協(xié)作開發(fā)和配對編程的服務(wù),可讓您與他人共享當前在IDE中打開的項目,并實時進行協(xié)作。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: