[解決済み】Eclipseの最適なJVM設定は何ですか?[クローズド]。
質問
Eclipseを実行するのに最適なJVMの設定は何ですか?
解決方法を教えてください。
<サブ 今年もこの季節がやってきました: "eclipse.ini take 3" the settings strike back!
Eclipse Helios 3.6および3.6.xの設定
altテキスト http://www.eclipse.org/home/promotions/friends-helios/helios.png
の設定後 Eclipse Ganymede 3.4.x と Eclipse Galileo 3.5.x ここでは、最適化されたquot;optimized".を詳しく見ていきます。 eclipse.ini Eclipse Helios 3.6.x 用の設定ファイルです。
( というのは、私たちの職場のしょぼいワークステーション、2002年製の古いP4と2GoのRAMとXPSp3上でEclipseをフル稼働させることができたからです。しかし、私はWindows7で同じ設定をテストしました。 )
Eclipse.ini
警告
: Windows 以外のプラットフォームでは、Sun 独自のオプションを使用します。
-XX:MaxPermSize
の代わりに、Eclipse 専用のオプション
--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
ファイルを作成します。
Oracle JVM 1.6u21 (pre build 7)とEclipseのクラッシュの恐ろしさ
アンドリュー・ニーファー
がこの状況を警告してくれていて、その上で
ブログ記事
について、標準的でないvmの引数(
-XX:MaxPermSize
) で、他のベンダーの vms が全く起動しない原因となることがあります。
しかし、そのオプションのeclipse版(
--launcher.XXMaxPermSize
)は、新しいJDK(6u21、6u21 build 7を使用していない限り、下記参照)で動作しません。
は
最終
の解決策は
Eclipse Wiki
を、そして
Windows版Helios(6u21プリビルド7)の場合
だけです。
- ダウンロード eclipse_1308.dll (2010年7月16日)
- に配置し、それを
(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.x86_1.1.0.v20100503
これだけです。ここでいじるべき設定はありません(繰り返しますが、Heliosの場合のみです
Windowsの場合
を付けて
6u21プリビルド7
).
Windows 以外のプラットフォームでは、Sun 独自のオプションに戻す必要があります。
-XX:MaxPermSize
.
この問題は、ある回帰に基づくものです。
java.exeのOracleリブランディングにより、JVMの識別に失敗する。
とトリガーされました。
バグ 319514
をEclipse上で実行しました。
アンドリューが担当したのは
バグ 320005 - [ランチャー]。
--launcher.XXMaxPermSize: isSunVM
Oracleの場合はtrueを返すべき
しかし、それはHelios 3.6.1のみとなります。
フランシス・アプトン
もう一人のEclipseコミッター。
すべての状況を振り返る
.
7月27日、u21b7を更新しました。
:
Oracleは、次のJava 6のリリースに向けてこの変更を後退させ、JDK 7まで再び実装することはありません。
.
を使用する場合
jdk6u21ビルド7
に戻すことができます。
--launcher.XXMaxPermSize
(eclipseオプション)の代わりに
-XX:MaxPermSize
(非標準のオプション)。
は
C ランチャーのシムで起きている自動検出
eclipse.exe
はまだ"を探します。
Sun Microsystems
という文字列がありますが、6u21b7では再び動作するようになりました。
今のところ、私はまだ
-XX:MaxPermSize
のバージョン(いつみんながeclipseを立ち上げるか分からないので
右
JDK)。
暗黙の `-startup` と `--launcher.library` です。
以前の設定とは異なり、これらのモジュールの正確なパスは設定されなくなりました。これは、Eclipse 3.6.x の異なるリリース間で異なることがあるため便利です。
-
を起動します。指定しない場合、実行ファイルはpluginsディレクトリで
org.eclipse.equinox.launcher
バンドルで、最も高いバージョンのものを使用します。 -
launcher.library。指定されない場合、実行可能ファイルは
plugins
ディレクトリから適切なorg.eclipse.equinox.launcher.[platform]
という名前の共有ライブラリを使用します。eclipse_*
の中にあります。
JDK6を使用する
Eclipseの起動にJDK6が明示的に要求されるようになりました。
-Dosgi.requiredJavaVersion = 1.6
これは SO質問 は、Mac OSでの開発で好発進したことを報告しています。
+実験用VMOオプションのアンロック
以下のオプションは、Sun JVMの実験的なオプションの一部です。
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
この中で報告されている
ブログ記事
を使えば、Eclipseを高速化できる可能性があります。
をすべて見る
JVMオプションはこちら
また、公式の
Java Hotspotのオプションページ
.
注
これらのオプションの詳細リスト
は、次のように報告しています。
UseFastAccessorMethods
がデフォルトで有効になっている可能性があります。
参照 "JVMのアップデート" :
<ブロッククオート注意点として、G1はJDK 7に向けた新しいガベージコレクタですが、u17からリリースされたバージョン6ではすでに使用されています。
Eclipseでコマンドラインからファイルを開く
をご覧ください。 ブログ記事 この新しいオプションについて、Andrew Nieferが報告しています。
--launcher.defaultAction
openFile
これは、ランチャーが、" で始まらない引数だけを含むコマンドラインで呼び出された場合に、ランチャーに伝えます。
-
の後に " が続くものとして扱われます。--launcher.openFile
となります。
eclipse myFile.txt
Windowsでeclipseに関連するファイルをダブルクリックしたり、ファイルを選択して"を選択すると、ランチャーが受け取るコマンドラインはこのようなものになります。
Open With
または "。Send To
"イクリプス。相対パス は、まず現在の作業ディレクトリに対して解決され、次にeclipseのプログラムディレクトリに対して解決されます。
参照 バグ 301033 を参照してください。原文 バグ4922 (2001年10月、9年後に修正)。
p2 と符号なしダイアログプロンプト
多くのプラグインをインストールする際に、このダイアログボックスにうんざりしている方。
を追加してください。
eclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
こちらをご覧ください ブログ記事 から クリス・アニシッチ と、その バグレポート235526 .
プロンプトは少ないほうがいいというのは、セキュリティの研究でも裏付けられていますね。
人は、自分がやり遂げたいことの流れの中で飛び込んでくるものを無視します。3.6では、流れの途中で警告をポップアップしないようにすべきです。いくら簡略化しても、人々はそれを無視するだけです。
その代わりに、すべての問題を収集して ではなく 問題のあるバンドルをインストールし、代わりにユーザーをワークフローの修正ポイントに戻し、信頼を追加する、セキュリティポリシーをより緩く設定する、などの修正を行うことができます。これを セーフステージング .
---------- http://www.eclipse.org/home/categories/images/wiki.gif altテキスト http://www.eclipse.org/home/categories/images/wiki.gif altテキスト http://www.eclipse.org/home/categories/images/wiki.gif
追加オプション
これらのオプションは、直接
eclipse.ini
上記のとおりですが、必要に応じて便利に使うことができます。
Windows7 の `user.home` の問題
eclipseは起動時にkeystoreファイル(パスワードが保存されているファイル)を読み込みますが、このファイルは
user.home
.
もし、何らかの理由で
user.home
がフルレッジパスに適切に解決されないと、Eclipse は起動しません。
で最初に提起された
このSOの質問
この問題が発生した場合、キーストアファイルを明示的なパスに再定義する必要があります(最初に解決する user.home が不要になります)。
を追加してください。
eclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
によって追跡されています。 バグ300577 で解決済みです。 その他のSO質問 .
デバッグモード
待てよ、Eclipseの設定ファイルは1つじゃないんだ。
に追加すると
eclipse.ini
というオプションがあります。
-debug
を有効にすると
デバッグモード
を検索し、Eclipse が
別の
設定ファイル
.options
ファイルで、いくつかの OSGI オプションを指定することができます。
そして、ドロップインフォルダを通じて新しいプラグインを追加するときに最適です。
.optionsファイルに、このように以下の設定を追加してください。
ブログ記事 "
ドロップイン診断
"
:
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2 は、どのようなバンドルが見つかったかを
dropins/
フォルダ、どのような要求が発生したか、インストールの計画はどうなっているか。実際に何が起こったのか、何が悪かったのか、詳細な説明にはなっていないかもしれませんが、どこから手をつければいいのか、しっかりとした情報を与えてくれるはずです。
- あなたのバンドルはプランに含まれていましたか?
- インストール時の問題か(P2のせい)
- それとも、その機能を搭載するのは最適ではないのでしょうか?
由来は Bug 264924 - [reconciler] ドロップイン問題の診断ができない。 のように、最終的に以下の問題を解決しています。
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に依存しており、EMFは欠落しているため、これは問題のある構成です。
3.5M5では、この問題に対する診断ができません。eclipseを起動します。
明らかな問題はありません。エラーログには何もありません。
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(aka Eclipse 3.5)では、JDTはプロジェクトのビルド・パスに追加されたライブラリーのマニフェスト・クラスパスを解決するようになりました。これは、ライブラリがプロジェクトのビルドパスに直接追加されたか、JDTが提供するユーザーライブラリ機能またはサードパーティが実装したものなどのクラスパスコンテナを介して追加されたかに関係なく機能しました。
- Heliosでは、この動作が変更され、マニフェストのクラスパス解決からクラスパス・コンテナが除外されました。
つまり、いくつかのプロジェクトはHeliosでコンパイルできなくなる可能性があるということです。
Galileoの動作に戻したい場合は、追加してください。
-DresolveReferencedLibrariesForContainers=true
参照 バグ305037 , バグ313965 および バグ 313890 を参考にしてください。
IPV4スタック
これは SO質問 は、プラグインアップデートサイトにアクセスできない場合の修正の可能性について言及しています。
-Djava.net.preferIPv4Stack=true
あなたの設定に役立つかもしれないので、ここに記載します。
JVM1.7x64の最適化の可能性
この記事 を報告します。
ちなみに、1.7 x64 JVM n Windowsでのベンチテストにおいて、私がこれまでに見つけた最も高速なオプションは以下のとおりです。
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
でも、まだまだ現役なんです...。
関連
-
[解決済み】JNI共有ライブラリ(JDK)の読み込みに失敗しました。)
-
[解決済み] Eclipseの赤い感嘆符のアイコンは何を意味しているのですか?
-
[解決済み] JVM起動時のパラメータ「-Xms」「-Xmx」とは何ですか?
-
[解決済み] java.lang.UnsupportedClassVersionError を修正する方法。サポートされていないメジャー.マイナーバージョン
-
[解決済み] Eclipseを高速化する方法とは?
-
[解決済み] Eclipseにプロジェクトをインポートした後に「Must Override a Superclass Method」エラーが発生する。
-
[解決済み] Eclipseが起動できない - Javaは起動したが終了コード=13を返した
-
[解決済み] JVMターゲット1.8でビルドされたバイトコードをJVMターゲット1.6でビルドされているバイトコードにインライン化することができない
-
[解決済み] JVM、JDK、JRE、OpenJDKの違いは何ですか?
-
[解決済み】Eclipseで参照がハイライトされなくなった
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Eclipseのデフォルトのワークスペースを変更するには?
-
[解決済み] Eclipseの実行形式ランチャーが、コンパニオンランチャーのjarウィンドウを見つけられませんでした。
-
[解決済み] eclipseですべてのブレークポイントを表示する方法は?
-
eclipse solve editor にメインタイプのメソッドがない。
-
Javaが起動したが、終了コード=-1073741819が返ってきた。
-
Eclipse起動時に発生するJava Toolingの初期化エラー
-
[解決済み] その名前のプロジェクトはワークスペースeclipseにすでに存在しています。
-
[解決済み] Eclipseを高速化する方法とは?
-
[解決済み] タブの代わりにスペースを使うようにEclipseを変更するにはどうしたらいいですか?
-
[解決済み】Eclipse - Java (JRE) / (JDK) がない......仮想マシンがない