原創(chuàng)|行業(yè)資訊|編輯:龔雪|2023-04-17 11:22:35.027|閱讀 123 次
概述:本文將教大家如何手動(dòng)嘗試改善 IntelliJ IDEA 和 Scala 插件體驗(yàn),歡迎下載最新版IDE體驗(yàn)~
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
IntelliJ IDEA,是java編程語(yǔ)言開(kāi)發(fā)的集成環(huán)境。IntelliJ在業(yè)界被公認(rèn)為最好的java開(kāi)發(fā)工具,尤其在智能代碼助手、代碼自動(dòng)提示、重構(gòu)、JavaEE支持、各類(lèi)版本工具(git、svn等)、JUnit、CVS整合、代碼分析、 創(chuàng)新的GUI設(shè)計(jì)等方面的功能可以說(shuō)是超常的。
在普通筆記本電腦上,成熟IDE是最復(fù)雜的一種應(yīng)用程序。JetBrains官方團(tuán)隊(duì)收到有關(guān) Scala 插件在某些情況下出現(xiàn)延遲或者總體上運(yùn)行緩慢的反饋,有時(shí)技術(shù)團(tuán)隊(duì)可以提供一些幫助,但另一些時(shí)候,比如您的代碼庫(kù)龐大復(fù)雜,或者機(jī)器較為陳舊時(shí),同樣也無(wú)能為力。今天我們將為大家介紹如何手動(dòng)嘗試改善IntelliJ IDEA 和 Scala 插件體驗(yàn),例如實(shí)現(xiàn)配置調(diào)整和保持良好的編碼習(xí)慣。
首先,來(lái)看 IntelliJ IDEA 中性能至關(guān)重要的兩個(gè)主要領(lǐng)域:
在這兩種情況下,我們都可以通過(guò)相似的方式提升性能,可以:
從資源開(kāi)始,這里基本上意味著提供更多內(nèi)存。但是首先建議是啟用內(nèi)存指示器,您可以右鍵點(diǎn)擊 IntelliJ IDEA 的底部面板,然后在彈出菜單中點(diǎn)擊內(nèi)存指示器。 它會(huì)告訴您IntelliJ IDEA實(shí)際使用了多少內(nèi)存,讓您按需設(shè)置內(nèi)存大小。
如今,普通筆記本電腦有 8 GB 或更多 RAM,通常足以讓 IntelliJ IDEA、其他應(yīng)用程序和操作系統(tǒng)正常運(yùn)行。
檢查 IntelliJ IDEA內(nèi)存消耗后,通過(guò)打開(kāi) Help(幫助)菜單并選擇 Edit Custom VM Options(編輯自定義 VM 選項(xiàng))來(lái)打開(kāi) idea.vmoptions 文件,將 -Xmx 設(shè)置更改為略大于內(nèi)存指示器顯示的值。 請(qǐng)注意,超過(guò)一定值后,增加 -Xmx 將無(wú)法提升性能。 在這里,增加到 4 GB 有一些效果,之后額外的提升幾乎可以忽略不計(jì)。
對(duì)于 Scala 插件,如果您決定從 IntelliJ IDEA 中編譯應(yīng)用,增加可用內(nèi)存也可能加快編譯速度。 為此請(qǐng)轉(zhuǎn)到 Settings | Build, Execution and Deployment | Scala Compiler Server(設(shè)置 | 構(gòu)建、執(zhí)行和部署 | Scala 編譯器服務(wù)器),并修改 VM 選項(xiàng)。
CPU 方面,Scala 插件最重要的功能之一(也會(huì)使用大量 CPU)是它的一組檢查。 檢查是一種邏輯,可以檢查代碼,尋找特定類(lèi)型的問(wèn)題。 有些問(wèn)題非常簡(jiǎn)單,比如永遠(yuǎn)不會(huì)被修改而可被替換為不可變值的 private 變量。 其他問(wèn)題,如未使用的 public 字段,可能需要很長(zhǎng)時(shí)間調(diào)查。
如果您感覺(jué)部分檢查沒(méi)有用處,將其禁用可能會(huì)提高高亮顯示速度。可以轉(zhuǎn)到 Settings | Editor | Inspections(設(shè)置 | 編輯器 | 檢查),查看可用檢查列表,禁用不需要的檢查。 另外,瀏覽設(shè)置也是全面了解 Scala 插件功能的好方法。
接下來(lái),我們將深入探究 Scala 插件眾多檢查中的 3 個(gè)。 每個(gè)檢查都只是插件邏輯的一小部分,對(duì)于不同用戶(hù)可能會(huì)產(chǎn)生不同的影響。
1. Type check can be replaced by pattern matching(類(lèi)型檢查可被替換為模式匹配)
這個(gè)檢查會(huì)在一系列 if-else 語(yǔ)句中查找類(lèi)型檢查和類(lèi)型轉(zhuǎn)換,并建議將其替換為模式匹配。 請(qǐng)注意,即使是最復(fù)雜的檢查也有快速路徑來(lái)檢查是否不適用于給定代碼段(例如,當(dāng)其中沒(méi)有 isInstanceOf 時(shí))。 但是在某些情況下,您可能想要使用像這樣的代碼,如果您希望它保持這種狀態(tài),可以考慮禁用檢查。
2. Scala 2 syntax can be replaced with Scala 3(Scala 2 語(yǔ)法可被替換為 Scala 3)
只有啟用編譯器選項(xiàng) -Xsource:3 時(shí),這個(gè)檢查才有效。 它會(huì)報(bào)告可被替換為 Scala 3 的 Scala 2 語(yǔ)法。 如果為兼容性使用 -Xsource:3,但不需要重寫(xiě)代碼,則可以將其安全禁用。
3. Declaration access can be weaker(聲明訪(fǎng)問(wèn)可以更弱)和 Unused declaration(未使用的聲明)檢查
對(duì)于代碼中的每個(gè)聲明,這兩個(gè)檢查都將嘗試檢查聲明的使用方式。 如果聲明為 public 或 protected,第一個(gè)將起作用,它將檢查聲明是否確實(shí)在自己的類(lèi)、特征或?qū)ο蟮淖饔糜蛑馐褂谩H绻皇牵瑱z查將提示可以將聲明設(shè)為 private,第二個(gè)適用于每個(gè)聲明 – 它會(huì)遍歷聲明的作用域并檢查它是否被使用。
Scala 讓我們能夠以簡(jiǎn)潔的方式編寫(xiě)復(fù)雜代碼,但這是有代價(jià)的:我們留給 IDE 的越多,它的性能就越差。 如上所示,在許多情況下,如果您執(zhí)行嚴(yán)格的編碼做法,Scala 插件中的一些檢查可能是不必要的。 事實(shí)上,如果是要弄清楚聲明是否未被使用或者變量是否可以為值,Scala 插件檢查所做的與我們所做的并沒(méi)有太大不同。 我們會(huì)在作用域內(nèi)檢查,嘗試找到疑似與此相關(guān)的其他元素,會(huì)查找子類(lèi)、隱式轉(zhuǎn)換等。
如果審查者因您代碼的復(fù)雜性而苦惱,這可能表明代碼還有改進(jìn)空間,使其更易分析。 同樣,如果您發(fā)現(xiàn) IntelliJ IDEA 因?yàn)闄z查代碼花費(fèi)了太長(zhǎng)時(shí)間而變慢,請(qǐng)考慮調(diào)整編碼做法:
您還可以轉(zhuǎn)到 Settings | Languages & Frameworks | Scala(設(shè)置 | 語(yǔ)言和框架 | Scala)中的 Performance(性能)選項(xiàng)卡,查看其中的控件,并考慮項(xiàng)目的性能是否會(huì)受到這些控件所處理問(wèn)題的影響。 例如使用很多隱式形參時(shí),弄清楚它們可能需要很長(zhǎng)時(shí)間, 或者如果使用大文件,對(duì)于每個(gè)類(lèi)和方法,在使用代碼示例的注釋中都有一個(gè)文檔條目,Scala 插件將嘗試正確高亮顯示它,您可以嘗試禁用這些功能以及其他一些功能。
到目前為止,我們談到的所有提示都可能在某些特殊情況下對(duì)您有所幫助。 通常如果機(jī)器足夠好,IntelliJ IDEA的性能應(yīng)該還不錯(cuò)。 只有當(dāng)項(xiàng)目要求特別高時(shí),這些提示才會(huì)有用。
但可能出于某種原因,您必須在舊的、性能較差的電腦上使用IntelliJ IDEA,這是還可以嘗試其他操作來(lái)改善體驗(yàn)。轉(zhuǎn)到 Settings | Appearance & Behavior | Appearance(設(shè)置 | 外觀與行為 | 外觀),禁用抗鋸齒和平滑滾動(dòng)。 字體將顯得不太光滑,滾動(dòng)瀏覽文件內(nèi)容時(shí),也會(huì)感覺(jué)不太流暢,但這兩種功能都會(huì)對(duì)性能產(chǎn)生一些影響。 如果這還不夠,您可以打開(kāi) File(文件)菜單并啟用 Power Save Mode(省電模式)。 這將關(guān)閉 IntelliJ IDEA的許多功能,所以我建議只在沒(méi)有其他幫助的情況下才這樣做。
如果這對(duì)您來(lái)說(shuō)過(guò)于極端,您可以從 JetBrains Marketplace 安裝 。 它可以讓您控制 Power Save Mode(省電模式)何時(shí)自動(dòng)打開(kāi)和關(guān)閉,讓您仍然可以在需要時(shí)使用 IntelliJ IDEA 的復(fù)雜功能。
另一種選擇是禁用類(lèi)型感知注解器, 您可以點(diǎn)擊 IntelliJ IDEA 主窗口右下角的小 “[T]” 符號(hào)完成此操作。
它會(huì)阻止 Scala 插件檢查代碼中的類(lèi)型。 注意,它不會(huì)禁用所有錯(cuò)誤檢查,只禁用那些由于類(lèi)型不多而導(dǎo)致錯(cuò)誤的檢查,例如當(dāng)您嘗試將 String 作為實(shí)參傳遞給接受 Int 的方法時(shí)。
Jetbrains技術(shù)交流群(QQ):786598704 歡迎一起進(jìn)群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)