Linux で IntelliJ IDEA を使用していますが、最近 16 GB の RAM を使用しています。このメモリを使用してプロジェクトのコンパイルを高速化する方法はありますか?
3 に答える
まず第一に、IntelliJ IDEA 自体を高速化するために、この議論は非常に役立つと思うかもしれません。
コンパイルを高速化する最も簡単な方法は、コンパイル出力を 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
デフォルト) を開き、[プロジェクト] - [プロジェクト コンパイラ出力] に移動して、RAM ディスク マウント ポイントに移動します。
/tmp/projectName/out
projectName
(そこに行く必要がある場合、または同時に複数のプロジェクトで作業する場合に簡単に見つけるために、フォルダーを追加しました)
次に、モジュールに移動し、すべてのモジュールでパスに移動して「プロジェクトコンパイル出力パスを継承」を選択するか、カスタムコンパイル出力パスを使用する場合は、「出力パス」と「テスト出力パス」を変更します。コンパイラ出力を前に投影します。
以上です、皆さん!
PSいくつかの数字:さまざまなケースでの現在のプロジェクトのコンパイル時間(概算):
HDD: 80s
SSD: 30s
SSD+RAM: 20s
PPS SSD ディスクを使用すると、コンパイルの高速化に加えて、ディスクへの書き込み操作が減るため、SSD がいつまでも快適に使用できるようになります ;)
はい、できます。これを行うにはいくつかの方法があります。最初に、使用しているメモリの量に合わせて JVM を微調整できます。このhttps://gist.github.com/zafarella/43bc260c3c0cdc34f109を例にとります。
さらに、使用している Linux ディストリビューションによっては、RAM ディスクを作成し、コンテンツを HDD に再同期する方法があります。基本的に、すべてのログと tmp ファイル (インデックスを含む) を RAM に配置します。アイデアはすぐに飛び立ちます。
この profile-sync-daemon のようなものを使用して、ファイルの同期を維持します。アイデアをアプリとして簡単に追加できます。または、anything-sync-daemon を使用できます
「idea.system.path」と「idea.log.path」を変更する必要があります。Idea 設定の詳細については、ドキュメントを参照してください。アイデアは、頻繁に変更されるものをすべて RAM に移動することです。
その他の RAM ディスクの代替手段https://wiki.debian.org/SSDOptimization#Persistent_RAMDISK
このソリューションの悪い点は、RAM OS のスペースが不足するとページングが行われ、すべてが遅くなることです。
それが役立つことを願っています。
ramdisk アプローチに加えて、そのプロセスにより多くのメモリを与え (ただし多すぎない)、独立したモジュールを並行してコンパイルすることにより、コンパイルを高速化できます。どちらのオプションも [設定] | [設定] にあります。コンパイラ。