Eclipseを実行するのに最適なJVM設定は何ですか?
Eclipseを実行するのに最適なJVM設定は何ですか?
回答:
再びその時期です。 "eclipse.ini take 3"設定が反撃されます!
代替テキストhttp://www.eclipse.org/home/promotions/friends-helios/helios.png
Eclipse Ganymede 3.4.xおよびEclipse Galileo 3.5.xの設定後、Eclipse Helios 3.6.xの「最適化された」eclipse.ini設定ファイルの詳細を以下に示します。
(「最適化」とは、仕事で私たちのくだらないワークステーション、2002年の古いP4、2Go RAMおよびXPSp3で本格的なEclipseを実行できることを意味します。ただし、Windows7でも同じ設定をテストしました)
警告:Windows以外のプラットフォームで-XX:MaxPermSize
は、Eclipse独自のオプションではなく、Sun独自のオプションを使用して--launcher.XXMaxPermSize
ください。
つまり:ない限り、あなたは、最新の使用しているjdk6u21ビルド7。以下のOracleセクションを参照してください。
-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons
注:を選択した外部ディレクトリに
適合させp2.reconciler.dropins.directory
ます。
このSOの回答を参照してください。アイデアは、Eclipseのインストールとは別に、新しいプラグインをディレクトリにドロップできるようにすることです。
次のセクションでは、このeclipse.ini
ファイルの内容について詳しく説明します。
Andrew Nieferはこの状況について私に警告し、非標準のvm引数()に関するブログ投稿を書いた-XX:MaxPermSize
ため、他のベンダーのvmsがまったく起動しない可能性があります。
ただし、そのオプションの日食バージョン(--launcher.XXMaxPermSize
)は新しいJDKでは動作しません(6u21ビルド7を使用している場合を除き、6u21は以下を参照)。
の 最後のソリューションはEclipse Wikiにあり、Windows上のHeliosの場合、6u21 pre build 7のみが含まれます。
(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
それでおしまい。ここで微調整する設定はありません(これも、Windows上の Helios で、ビルドが6u21のビルド7のみです)。
Windows以外のプラットフォームでは、Sun独自のオプションに戻す必要があります-XX:MaxPermSize
。
問題は、1つの回帰をベースに:JVMの識別はjava.exeをリブランドでのOracleによる失敗、およびトリガーバグ319514を Eclipseの上。
AndrewはBug 320005を処理しました-[launcher] --launcher.XXMaxPermSize: isSunVM
はOracleに対してtrueを返すはずですが、これはHelios 3.6.1に対してのみです。別のEclipseコミッターである
Francis Uptonは、すべての状況を反映しています。
u21b7、7月27日の更新:
Oracleは次のJava 6リリースの変更を後退させ、JDK 7までそれを再び実装しません。jdk6u21 build 7
を使用している場合は、(非標準オプション)ではなく、(eclipseオプション)に戻すことができます。Cランチャーシムで何が起こっ自動検出は、まだ「を探しますもう一度- 」の文字列が、6u21b7で、それが仕事になりましたでしょう。--launcher.XXMaxPermSize
-XX:MaxPermSize
eclipse.exe
Sun Microsystems
今のところ、私はまだ-XX:MaxPermSize
バージョンを保持しています(誰がいつ適切な JDKをEclipseで起動するかわからないため)。
以前の設定とは異なり、これらのモジュールの正確なパスは設定されなくなりました。これは、Eclipse 3.6.xのリリース間で異なる可能性があるため、便利です。
org.eclipse.equinox.launcher
最も高いバージョンのバンドルを探します。plugins
ディレクトリ内でorg.eclipse.equinox.launcher.[platform]
最新バージョンの適切なフラグメントを検索し、eclipse_*
内部で指定された共有ライブラリを使用します。JDK6は、Eclipseを起動するために明示的に必要になりました。
-Dosgi.requiredJavaVersion = 1.6
このSOの質問は、Mac OSでの開発の肯定的な発生率を報告しています。
以下のオプションは、Sun JVMの実験的オプションの一部です。
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
このブログ記事では、Eclipseを高速化する可能性があると報告されています。ここにある
すべてのJVMオプションと、公式のJavaホットスポットオプションページを参照してください。
注:デフォルトでアクティブになる可能性があるオプションレポートの詳細なリストUseFastAccessorMethods
。
「JVMの更新」も参照してください。
G1は、JDK 7に備えた新しいガベージコレクターですが、u17のバージョン6リリースではすでに使用されています。
この新しいオプションを報告しているAndrew Nieferのブログ投稿を参照してください。
--launcher.defaultAction
openFile
これは、 "
-
"で始まらない引数のみを含むコマンドラインで呼び出された場合、それらの引数は "--launcher.openFile
"の後に続くかのように処理する必要があることをランチャーに伝えます。
eclipse myFile.txt
これは、Eclipseに関連付けられているファイルをダブルクリックするか、ファイルを選択して「
Open With
」または「Send To
」Eclipse を選択すると、ランチャーがウィンドウ上で受け取るコマンドラインの一種です。相対パスは、まず現在の作業ディレクトリに対して解決され、次にEclipseプログラムディレクトリに対して解決されます。
参照バグ301033を参照するために。もともとはバグ4922(2001年10月、9年後に修正)。
多くのプラグインのインストール中にこのダイアログボックスに飽きてきた場合:
、に追加eclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
Chris Aniszczyからのこのブログ投稿、およびバグレポート235526を参照してください。
セキュリティ調査は、プロンプトが少ないほど良いという事実を裏付けていると言いたいです。
人々は、やりたいことの流れの中でポップアップするものを無視します。3.6では、フローの途中で警告をポップアップするべきではありません。どれだけ単純化しても、人々は警告を無視するだけです。
代わりに、すべての問題を収集し、問題のあるこれらのバンドルをインストールせず、代わりにユーザーをワークフローのポイントに戻して修正できるようにします-信頼を追加したり、セキュリティポリシーをより緩く設定したりします。これは「安全」と呼ばれますステージング '。
---------- http://www.eclipse.org/home/categories/images/wiki.gif 代替テキストhttp://www.eclipse.org/home/categories/images/wiki.gif 代替テキストhttp://www.eclipse.org/home/categories/images/wiki.gif
これらのオプションはeclipse.ini
上記に直接ありませんが、必要に応じて便利です。
Eclipseが起動すると、(パスワードが保存されている)キーストアファイル(にあるファイル)を読み取りますuser.home
。
何らかの理由でuser.home
完全に完全に解決されない場合、Eclipseは起動しません。このSO質問で
最初に発生しましたが、これが発生した場合は、キーストアファイルを明示的なパスに再定義する必要があります(最初にuser.homeを解決する必要はありません)。
に追加eclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
これはバグ300577によって追跡され、この他のSOの質問で解決されています。
ちょっと待ってください。Eclipseには複数の設定ファイルがあります。オプションに
追加しeclipse.ini
た場合:
-debug
、デバッグモードを有効にすると、Eclipseは別の設定ファイル(.options
OSGIオプションを指定できるファイル)を探します。
そして、dropinsフォルダーを介して新しいプラグインを追加する場合、それは素晴らしいことです。
このブログ投稿「Dropins診断」で説明されているように、.optionsファイルに次の設定を追加します。
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2は、
dropins/
フォルダーで見つかったバンドル、生成された要求、およびインストールの計画を通知します。多分それは実際に何が起こったのか、何がうまくいかなかったのかについての詳細な説明ではないかもしれませんが、どこから始めるべきかについての強力な情報を与えるでしょう:
- あなたのバンドルは計画に含まれていましたか?
- インストールの問題でしたか(P2障害)
- それともあなたの機能を含めることは単に最適ではありませんか?
これは、バグ264924から生じます-[調停者]ドロップインの問題の診断はありません。これにより、最終的に次のような問題が解決されます。
Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5
OCLは欠落しているEMFに依存するため、これは問題のある構成です。
3.5M5はこの問題の診断を提供しません。日食を開始します。
明らかな問題はありません。エラーログには何もありません。
Help / About / Plugin
詳細は表示されますがorg.eclipse.ocl.doc
、表示されませんorg.eclipse.ocl
。Help / About / Configuration
詳細にはの(診断)言及はありませんorg.eclipse.ocl
。Help / Installation / Information Installed Software
の言及はありませんorg.eclipse.ocl
。素敵なエラーマーカーはどこにありますか?
このブログ投稿を参照してください:
- Galileo(別名Eclipse 3.5)では、JDTは、プロジェクトのビルドパスに追加されたライブラリーのマニフェストクラスパスの解決を開始しました。これは、ライブラリがプロジェクトのビルドパスに直接追加された場合でも、クラスパスコンテナー経由で追加された場合でも機能しました。
- Heliosでは、この動作が変更され、クラスパスコンテナーがマニフェストクラスパス解決から除外されました。
つまり、一部のプロジェクトはHeliosでコンパイルできなくなる可能性があります。
Galileoの動作に戻したい場合は、以下を追加します。
-DresolveReferencedLibrariesForContainers=true
参照については、バグ305037、バグ313965、およびバグ313890を参照してください。
このSOの質問は、プラグイン更新サイトにアクセスしない場合の潜在的な修正について言及しています。
-Djava.net.preferIPv4Stack=true
構成に役立つ場合に備えて、ここで言及しました。
この記事は報告します:
記録として、1.7 x64 JVM n Windowsでのベンチテストでこれまでに見つけた最速のオプションは次のとおりです。
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
しかし、私はまだそれに取り組んでいます...
-XX:CompileThreshold=5
引き起こします。このオプションを取り除くだけで、Eclipseの起動時間が1分以上から17秒に短縮されました。IDEが一般的にどれほどひどく遅いかは言うまでもありません。このリンクを参照してください
-XX:CompileThreshold=5
非常に低い値です(デフォルト= 10000)。この値は、コンパイルする前のメソッド呼び出し/ブランチの数を表します。値が小さすぎると、CodeCacheが早期にいっぱいになり、コンソールから次のように報告される可能性があります。CodeCache is full. Compiler has been disabled
コンパイラを無効にすると、アプリの速度が低下することに気づくでしょう。これを修正するには、2つの方法があります。1。-XX:CompileThreshold=1000
(この数値を微調整)または2.を使用して、コードキャッシュサイズを増やし-XX:ReservedCodeCacheSize=64m
ます(デフォルトの32mから2倍)
- (日食3.5.xの、参照ガリレオと現在(2009年11月)、私はJDK6のアップデート17でオプションの以下の構成セットをテストしてい3.4については、以下のかについて上ヘリオス3.6.xの:)
(もちろん、相対パスを適応させますこのeclipse.iniに存在し、セットアップの正しいパスに)
注:eclipse3.5の場合startup
、次のlauncher.library
行に置き換えてください:
-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins
org.eclipse.equinox.p2.reconciler.dropins.directory
オプション。JDKに実際に関連する無視されたブレークポイントのバグがありました。Eclipseの起動に
はJDK6u16以降を使用してください(Eclipse 内でコンパイルするJDKをいくつでも定義できます。同じJDKでコンパイルする必要があるのは、JDK6でEclipseを起動するためではありません)。
次の使用法に注意してください。
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
Eclipse Wikiに記載されているように、
Eclipse 3.3は、ランチャーへの新しい引数をサポートしています
--launcher.XXMaxPermSize
。
使用されているVMがSun VMであり、まだ-XX:MaxPermSize=
VM引数がない場合、ランチャーは-XX:MaxPermSize=256m
、使用されているVM引数のリストに自動的に追加します。
3.3ランチャーは、Windows上のSun VMのみを識別できます。
すべてのVMが
-XX:MaxPermSize
引数を受け入れるわけではないため、この方法で渡されます。sun vmsの識別に問題がある場合とない場合があります。
注:Eclipse 3.3.1には、ランチャーがSun VMを検出できないため、正しいPermGenサイズを使用しないバグがあります。これはMac OS X 3.3.0の既知のバグである可能性もあります。
これらのプラットフォームの組み合わせのいずれかを使用している場合は、上記のように-XX
フラグをに追加しeclipse.ini
ます。ノート:
- 「
384m
」行=384m
は、VM引数の「」部分に変換されます。VMが「m
」で大文字と小文字を区別する場合は、この引数もそうです。- "
--launcher.
"接頭辞。これは、引数がランチャー自体によって消費されることを指定し、アプリケーションの引数との名前の衝突を回避するためにランチャー固有の引数に追加されました。(他の例は--launcher.library
、--launcher.suppressErrors
)
-vmargs -XX:MaxPermSize=384m
一部には、引数が完全にランチャーをバイパスし、VMに直接渡され、VMのベンダーにはチェックが使用されていないです。
最近の設定については、上記のEclipse Galileo 3.5設定を参照してください。
私の意見では、常に最高のJVM設定には、見つけることができる最新のJDKが含まれています(したがって、現時点では、b14とb15を除く jdk1.6.0_b07からb16まで)。
これらのかなり低いメモリ設定でも、2Go RAMを搭載した古い(2002)デスクトップで(Webサーバーとともに)大きなJavaプロジェクトを実行できます。
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote
参照してくださいGKellyのSOの答えとピョートルGabryanczykのブログエントリ新しいオプションの詳細については。
また、起動を検討することもできます。
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
メモリ消費に関する前の質問で述べたように。
設定日/オラクルのJavaのバージョン「1.6.0_31」とのEclipse 3.7のLinux x86-64の上で実行されています:
-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
これは、ヒープに200 MB、非ヒープに150 MBのみを使用することに注意してください。巨大なプラグインを使用している場合は、「-Xmx200m」と「-XX:MaxPermSize = 150m」の両方の制限を増やすことができます。
これらのフラグの主な最適化ターゲットは、すべてのケースでレイテンシを最小化することであり、第2の最適化ターゲットとして、メモリ使用量を最小化しました。
-showlocation
日食を2回実行しやすくし、どのワークスペースを扱っているのかを簡単に知るには
Eclipse 3.6には、Workspace name (shown in window title)
以下-showlocation
の3つの理由よりもはるかにうまく機能するものに対して何を表示するかを指定する設定オプションが追加されています。
あなたは、Linux +日JDK / JREを使用している場合は32ビットを、「-vm」に変更します。
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
あなたは、Linux +日JDK / JREを使用している場合は64-ビットを、「-vm」に変更します。
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
Ubuntu 8.10と9.04ではうまくいきます。
JRockitで実行することもできます。これはサーバー用に最適化されたJVMですが、IDEなどの長時間実行されるクライアントアプリケーションの多くはJRockitで非常によく動作します。Eclipseも例外ではありません。JRockitにはperm-spaceがないため、構成する必要はありません。
UIの停止を長時間のgc一時停止を回避するために、一時停止時間のターゲット(ms)を設定することが可能です。
-showsplash
org.eclipse.platform
-vm
C:\jrmc-3.1.2-1.6.0\bin\javaw.exe
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20
私は通常、-Xmxと-Xmsの設定を気にせず、必要に応じてJRockitにヒープを拡張させます。JRockitでEclipseアプリケーションを起動する場合、JRockit Mission Controlツールスイートを使用して、アプリケーションのメモリリークを監視、プロファイリング、および検索することもできます。この更新サイトからプラグインをダウンロードします。注:Eclipse 3.3およびEclipse 3.4でのみ機能します
i7 2630M 16GB RAMラップトップで実行しているEclipseの独自の設定を以下に示します。この設定は1週間使用しており、クラッシュすることはなく、Eclipse 3.7はスムーズに実行されています。
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1024m
-Xmx4096m
-XX:MaxPermSize=256m
計算:Win 7 x64の場合
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow
そして、これらの設定は私にとって魅力のように機能しました。OS X10.6、Eclipse 3.7 Indigo、JDK1.6.0_24を実行しています
私自身の設定(Java 1.7、1.6用に変更):
-vm
C:/Program Files (x86)/Java/jdk1.7.0/bin
-startup
plugins/org.eclipse.equinox.launcher_1.1.0.v20100507.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20100628
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-server
-Dosgi.requiredJavaVersion=1.7
-Xmn100m
-Xss1m
-XgcPrio:deterministic
-XpauseTarget:20
-XX:PermSize=400M
-XX:MaxPermSize=500M
-XX:CompileThreshold=10
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UnlockExperimentalVMOptions
-XX:+DoEscapeAnalysis
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-XX:+AggressiveOpts
-Xms512m
-Xmx512m
あなたが私を好きで、現在のOracleリリース1.6で問題が発生した場合は、JDKまたはセットを更新することができます。
-XX:MaxPermSize。詳細については、こちらをご覧ください:http : //java.dzone.com/articles/latest-java-update-fixes
XX:+ UseParallelGCはこれまでで最も素晴らしいオプションです!!!
-vm
C:\ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll
使用しているJavaバージョンを指定し、javawプロセスを起動する代わりにDLLを使用するには
eclipse.ini
ヘリオス3.6の設定は、(新しい回答に、下)現在地:stackoverflow.com/questions/142357/...