web-dev-qa-db-ja.com

IntelliJ-Ideaの高速化

私はScala開発にintelliJを使用しており、先週新しい8 GBの新しいRAM私はタスクマネージャーをチェックし、〜250mbを使用してintelliJを見つけました。 ..

OS X用のこれ JVMオプションがすぐに見つからなかったため、調整を開始しましたXmx。1 GBで、それが実現しましたもう開始しないでください。 intelliJ Javaバージョンをチェックしましたが、古いもので32ビットです。

したがって、現在のJDKと64ビットを使用するには、リンクを次のように変更する必要があります。

IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe

IntelliJ IDEA Community Edition 10.0.2\bin\idea.BAT

「開始」を調整します

バットはJDK_HOMEを探し、64ビットを使用します。

現在のVMオプション

...\IntelliJ IDEA Community Edition 10.0.2\bin\idea.exe.vmoptions

-Xms512m
-Xmx1024m
-XX:MaxPermSize=512m
-ea
-server
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+UnlockExperimentalVMOptions
-XX:+UseParallelGC

-XX:+UseParallelGCの代わりに、-XX:+UseConcMarkSweepGCを使用できます。

デスクトップアプリの選択肢として受け入れられていますが、最近スループットコレクターに変更しました。マシンが高速でヒープが十分に小さいため、一時停止が速く、スループットが高く、フラグメンテーションの問題がないため(ijuma。#scala)

変更点:

-XX:+UseConcMarkSweepGC //removed
// removed, because not needed with the lastest JVM.
    -XX:+UnlockExperimentalVMOptions
    -XX:+DoEscapeAnalysis
    -XX:+UseCompressedOops

今のところこれらのオプションに固執します。私はあなたの経験を本当に知りたいです。

最適なオプションはどれですか? .batを介してintelliJを実行中にこのcmdウィンドウを非表示にするにはどうすればよいですか? :)

ところで、ここに tuning intelliJ の別のリンクがあります。基本的にonp.20/21と表示され、Windowsの復元とシステムダーのウイルス対策をオフにします。

IntelliJを高速化する別の方法は、intellijシステムフォルダーをramdriveに配置することです(OlegYch | hに感謝)。

from idea.properties 
idea.system.path=${idea.home}/.IntelliJIdea/system

Win 7 64ビットのスーパーユーザーRAMドライブ または この1つ を参照してください。1GBは問題ありません。

友人が私にくれた別のヒントは、プロジェクトディレクトリをウイルス対策から除外することです(アクセス時にスキャン)

Eclipseのチューニングに関する同様の投稿があります。

90
Stefan K.

この組み合わせは、Mavericksで実行しているIntellij13でうまく機能します。

2017年7月18日更新

# custom IntelliJ IDEA VM options

-ea
-server
-Xms2G
-Xmx4096M
-Xss2m
-XX:MaxMetaspaceSize=2G
-XX:ReservedCodeCacheSize=1G
-XX:MetaspaceSize=512m
-XX:+UseConcMarkSweepGC
-XX:+DoEscapeAnalysis
-XX:SoftRefLRUPolicyMSPerMB=50
-XX:+UnlockExperimentalVMOptions
-Djava.net.preferIPv4Stack=true
-Dsun.io.useCanonCaches=false
-XX:LargePageSizeInBytes=256m
-XX:+UseCodeCacheFlushing
-XX:ParallelGCThreads=8
-XX:+DisableExplicitGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+PrintGCDetails
-XX:+PrintFlagsFinal
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:CMSInitiatingOccupancyFraction=60
-XX:+CMSClassUnloadingEnabled
-XX:+CMSParallelRemarkEnabled
-XX:+UseAdaptiveGCBoundary
-XX:+UseSplitVerifier
-XX:CompileThreshold=10000
-XX:+OptimizeStringConcat
-XX:+UseStringCache
-XX:+UseFastAccessorMethods
-XX:+UnlockDiagnosticVMOptions
-XX:+HeapDumpOnOutOfMemoryError
-XX:+UseCompressedOops
-XX:-OmitStackTraceInFastThrow
-Dawt.useSystemAAFontSettings=lcd

-Dsun.Java2d.renderer=Sun.Java2d.marlin.MarlinRenderingEngine

この設定は https://github.com/adben/config/blob/master/idea64.vmoptions で更新し続けます

31
adben

SSDドライブに切り替えると、パフォーマンスが大幅に向上しました(特に大規模なプロジェクトの場合)。

28
Yann Cébron

に関して:

.batを介してintelliJを実行中にこのcmdウィンドウを非表示にするにはどうすればよいですか?

「start」コマンドとjavaw.exeを一緒に使用します。

SET Java_EXE=%IDEA_JDK%\jre\bin\Java.exe
...
"%Java_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*

次のように変更します。

SET Java_EXE=%IDEA_JDK%\jre\bin\javaw.exe
...
start "Intellij IDEA" /b "%Java_EXE%" %JVM_ARGS% -cp "%CLASS_PATH%" %IDEA_MAIN_CLASS_NAME% %*
20
Dilum Ranatunga

しばらく前に、プロジェクトのコンパイルを高速化する方法を探していましたが、それが結果です。これはIntelliJ用ではありませんIDEA自体ですが、大きなプロジェクトを(再)構築する際に非常に役立ちます。また、他のIDEでも動作します。しかし、Windowsには独自のRAMディスク実装があると確信しています。

コンパイルを高速化する最も簡単な方法は、コンパイル出力をRAMディスクに移動することです。

RAMディスクのセットアップ

Fstabを開く

$ Sudo gedit /etc/fstab

geditの代わりにviまたは好きなものを使用できます)

セットアップRAMディスクマウントポイント

私はシステムのいくつかの場所でRAMディスクを使用しています。そのうちの1つは/tmpので、コンパイル出力をそこに置きます:

tmpfs /var/tmp tmpfs defaults 0 0

この場合、ファイルシステムのサイズは制限されませんが、大丈夫です、私の/tmp現在のサイズは73MBです。ただし、RAMディスクサイズが大きくなりすぎることを恐れている場合は、サイズを制限できます。例:

tmpfs /var/tmp tmpfs defaults,size=512M 0 0

プロジェクトのセットアップ

IntelliJ IDEAで、プロジェクト構造(Ctrl+Alt+Shift+Sデフォルトで)、次にProject-'Project compiler output'に移動し、RAMディスクマウントポイントに移動します。

/tmp/projectName/out

(そこに到達する必要がある場合、または複数のプロジェクトを同時に処理する場合に簡単に見つけるために、projectNameフォルダーを追加しました)

次に、モジュールに移動し、すべてのモジュールでパスに移動して「プロジェクトのコンパイル出力パスを継承」を選択するか、カスタムのコンパイル出力パスを使用する場合は、「出力パス」と「出力パスのテスト」を変更します前にコンパイラ出力を投影します。

以上です!

追伸いくつかの数字:さまざまなケースでの現在のプロジェクトのコンパイル時間(約):

HDD:     80s
SSD:     30s
SSD+RAM: 20s

P.P.S. SSDディスクを使用すると、コンパイルの高速化に加えて、ディスクへの書き込み操作が減るので、SSDがいつまでも幸せに生きることができます;)

19
uncle Lem

IntelliJでできる最も便利なことは、多くのディスクキャッシュ用の空きメモリを用意することです。 IntelliJは、その処理作業の多くをキャッシュファイルに保存します。これは、空きメモリが十分にある場合はうまく機能しますが、ディスクキャッシュが制限されている場合は、定期的に長時間続く一時停止が発生します。

-XX:+UseConcMarkSweepGC のではなく G1

また、ファイルのローカルコピーを作成して、ファイルアクセスの遅延を最小限に抑えています。

[〜#〜] btw [〜#〜]:私の現在のプロジェクトでは、最大ヒープが2 GBに設定;)

19
Peter Lawrey

いくつかの実験を行ったところ、GCの一時停止を減らすには、-XX:+ UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB = 50の組み合わせが最適です。

また、ヒープをあまり大きくしすぎないようにします。512以下でも問題ありません。そうしないと、GCがいっぱいになると、GCがすべてを歩く必要があり、時間がかかります。

4
Peter Gromov

ここで良いヒントを見つけることができます。たとえば、IDEA=から別のアプリへ、またはその逆への切り替え速度は、「ファイルの同期をオフにする」機能をオフにすると大幅に改善されました。

http://hamletdarcy.blogspot.com/2008/02/10-tips-to-increase-intellij-idea.html

2
OJ278

まだ言及されていない理由がわからない-Power Save modeを有効にすると、多くの[〜#〜] ij [〜#〜]バックグラウンドアクティビティ(Files Synchronizationを含む) 。プロジェクト構造オプションでFiles Syncを無効にできるという記事もあります(@ OJ278の回答記事など)が、このオプションはIJ 14で見つかりませんでしたが、Power Save modeは無効になっているようです。

私は非常に大きなコードベース([〜#〜] aosp [〜#〜]ソースコード)を持っているので、バックグラウンドファイルの同期によるHDアクティビティは迷惑です...

2
Mixaz

Intellijのオプティマイザープラグインを使用できます。

https://zeroturnaround.com/free/optimizer-for-intellij-idea/

プラグインを使用すると、次のことができます。

  • 仮想マシンの自動調整オプション
  • クラス検証を無効にする
  • システムキャッシュをクリーンアップする
  • 外部ビルドツールを構成する
  • 最新のOracle JDKを検証する
  • ビルドと再デプロイをスキップ
1
iberck

adbenが提供する答えは、マシンのパフォーマンスを向上させるのに非常に役立ちます。 Dzoneの記事を読んだ後、少しオーバーライドしましたが、

-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea

上記の構成を使用することで大規模プロジェクトのパフォーマンスが向上し、プロジェクトでも問題なく機能します。最後に、使用しないプラグインをすべて無効にしました。これにより、状況も改善されました。

参照: https://dzone.com/articles/the-one-and-only-reason-to-customize-intellij-idea

1
Arefe

私はこの組み合わせを使用しましたが、私の環境ではうまく機能しています

-server
-Xms2048m
-Xmx2048m
-XX:NewSize=512m
-XX:MaxNewSize=512m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+UseParNewGC
-XX:ParallelGCThreads=4
-XX:MaxTenuringThreshold=1
-XX:SurvivorRatio=8
-XX:+UseCodeCacheFlushing
-XX:+UseConcMarkSweepGC
-XX:+AggressiveOpts
-XX:+CMSClassUnloadingEnabled
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:+CMSParallelRemarkEnabled
-XX:CMSInitiatingOccupancyFraction=65
-XX:+CMSScavengeBeforeRemark
-XX:+UseCMSInitiatingOccupancyOnly
-XX:ReservedCodeCacheSize=64m
-XX:-TraceClassUnloading
-ea
-Dsun.io.useCanonCaches=false

媒体に関するこのトピックに関する小さな記事を作成しました: https://medium.com/@sergio.igwt/boosting-performance-of-intellij-idea-and-the-rest-of-jetbrains-ides- cd34952bb978

0
SergioLeone