Які найкращі параметри JVM для Eclipse? [зачинено]


315

Які найкращі налаштування JVM ви знайшли для запуску Eclipse?


8
Нові і поліпшені eclipse.iniналаштування для Helios 3.6 тут (нижче, в новому відповіді): stackoverflow.com/questions/142357 / ...
VonC

6
Дивовижно, що закрите питання як не конструктивне має таку високу оцінку ...
bancer

1
Це запитання було задано, коли остання відповідь на подібне запитання у 2008 році була eclipsezone.com/eclipse/forums/t20732.html . Набір відповідей виріс, оскільки були випущені нові версії eclipse та java, наступні оновлення зберегли відповіді свіжими. Закриття питання призведе до того, що відповіді стануть несвіжими. Єдиний спосіб я передумав перефразовувати це питання - це зробити його конкретним варіантом, що, на мою думку, є гіршим, оскільки це призведе до того, що багато запитань відповідають на одну і ту ж проблему
Craig Angus

10
Погодьтеся - закриття таких питань, як це божевілля - безумство, я вам кажу - такі питання є найкориснішими та цікавішими на сайті!
Луїджі Плінге

3
Відповідно до причини закриття, "Ми очікуємо, що відповіді, як правило, стосуються фактів, посилань чи конкретної експертизи". Я думаю, що закриття цього питання є розтяжкою. Будьмо обережні, використовуючи цензурні повноваження. Я б сказав, що у випадку сумнівів, краще «нехай знання будуть вільними» та відкритими.
luiscolorado

Відповіді:


315

Це знову рік року: "eclipse.ini take 3" налаштування завдають удару!

Налаштування Eclipse Helios 3.6 і 3.6.x

alt text http://www.eclipse.org/home/promotions/friends-helios/helios.png

Після налаштувань для Eclipse Ganymede 3.4.x та Eclipse Galileo 3.5.x , ось глибокий огляд "оптимізованого" файлу налаштувань eclipse.ini для Eclipse Helios 3.6.x:

( під «оптимізованим» я маю на увазі можливість запускати повноцінний Eclipse на нашій хитрій робочій станції на роботі, старий P4 від 2002 року з 2Go оперативної пам’яті та XPSp3. Але я також перевірив ці самі налаштування на Windows7 )

Eclipse.ini

alt текст

ПОПЕРЕДЖЕННЯ : для платформи, яка не має вікон, використовуйте фірмовий варіант Sun -XX:MaxPermSizeзамість власного параметра Eclipse --launcher.XXMaxPermSize.
Тобто, якщо ви не використовуєте останню jdk6u21 build 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до зовнішнього каталогу на ваш вибір.
Дивіться цю відповідь ТАК . Ідея полягає в тому, щоб мати можливість викидати нові плагіни в каталог незалежно від будь-якої установки Eclipse.

У наступних розділах детально описано, що є у цьому eclipse.iniфайлі.


Страшний Oracle JVM 1.6u21 (попередня збірка 7) та Eclipse виходять з ладу

Ендрю Ніфер не попередив мене про цю ситуацію і написав повідомлення в блозі про нестандартний аргумент vm ( -XX:MaxPermSize) і може спричинити не запуск vms від інших постачальників.
Але версія затемнення цього параметра ( --launcher.XXMaxPermSize) не працює з новим JDK (6u21, якщо ви не використовуєте 6u21 build 7, див. Нижче).

The остаточнийрішення знаходиться на Eclipse Wiki , а для Helios в Windows з 6u21 попередньою збіркою 7 :

  • завантаження фіксованого eclipse_1308.dll (16 липня 2010 р.)
  • і помістіть його
(eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Це воно. Тут немає налаштувань для налаштування (знову ж таки, лише для Helios в Windows із попередньою збіркою 6u21 7 ).
Для платформи операційної системи, то вам необхідно повернутися до власної опції Sun -XX:MaxPermSize.

Проблема заснована на одній регресії: ідентифікація JVM не вдається через ребрендинг Oracle у java.exe та спровокував помилку 319514 на Eclipse.
Ендрю подбав про помилку 320005 - [запускник] --launcher.XXMaxPermSize: isSunVMповинен повернути true для Oracle , але це буде лише для Helios 3.6.1.
Френсіс Уптон , ще один уповноважений із затемнення, розмірковує над усією ситуацією .

Оновлення u21b7, 27 липня :
Oracle регресував зміни для наступного випуску Java 6 і не буде реалізовувати її знову до JDK 7 .
Якщо ви використовуєте jdk6u21 build 7 , ви можете повернутися до --launcher.XXMaxPermSize(eclipse option) замість -XX:MaxPermSize(нестандартний варіант). Автоматичне виявлення відбувається в C пусковий прокладки буде ще шукати « » рядок, але з 6u21b7, він тепер буде працювати - знову.
eclipse.exeSun Microsystems

Поки що я досі зберігаю -XX:MaxPermSizeверсію (тому що я не маю уявлення, коли всі запускають затемнення правильного JDK).


Неявні `-startup` та` --launcher.library`

На відміну від попередніх налаштувань, точний шлях для цих модулів більше не встановлений, що зручно, оскільки він може змінюватися між різними випусками Eclipse 3.6.x:

  • запуск: Якщо не вказано, виконуваний файл буде шукати в каталозі плагінів org.eclipse.equinox.launcherпакет із найвищою версією.
  • launcher.library: Якщо не вказано, виконуваний файл шукає у pluginsкаталозі відповідний org.eclipse.equinox.launcher.[platform]фрагмент із найвищою версією та використовує спільну бібліотеку, названу eclipse_*всередині.

Використовуйте JDK6

Тепер JDK6 явно необхідний для запуску Eclipse:

-Dosgi.requiredJavaVersion = 1.6

Це запитання ТА повідомляє про позитивну частоту розвитку на Mac OS.


+ UnlockExperimentalVMOptions

Наведені нижче варіанти є частиною експериментальних варіантів СВ Сонця.

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

Про них повідомлялося в цьому дописі про блог, щоб потенційно прискорити затемнення.
Перегляньте всі параметри JVM тут, а також на офіційній сторінці параметрів Java Hotspot .
Примітка: докладний список звітів про параметри, які UseFastAccessorMethodsможуть бути активними за замовчуванням.

Дивіться також "Оновлення JVM" :

Нагадування, G1 - це новий сміттєзбірник для підготовки до JDK 7, але вже використовується у версії 6 випуску з u17.


Відкриття файлів у Eclipse з командного рядка

Дивіться повідомлення в блозі від Ендрю Ніфера, який повідомляє про цей новий варіант:

--launcher.defaultAction
openFile

Це повідомляє запуску, що якщо він викликається командним рядком, який містить лише аргументи, які не починаються з " -", то до цих аргументів слід ставитися так, ніби вони дотримуються " --launcher.openFile".

eclipse myFile.txt

Це такий тип командного рядка, який пускач отримає у Windows, коли ви двічі клацніть файл, пов’язаний із затемненням, або ви вибираєте файли та вибираєте " Open With" або " Send To" затемнення.

Відносні шляхи будуть вирішені спочатку проти поточного робочого каталогу та другого проти каталогу програм eclipse.

Див. Помилку 301033 для довідки. Спочатку помилка 4922 (жовтень 2001, виправлено 9 років пізніше).


p2 та діалогове вікно без підпису

Якщо ви втомилися від цього діалогового вікна під час встановлення багатьох плагінів:

alt текст

, додайте у свій eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Дивіться цю публікацію в блозі від Chris Aniszczy та повідомлення про помилку 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описані вище, але можуть стати в нагоді у разі потреби.


Проблема `user.home` на Windows7

Коли затемнення починається, він прочитає файл зберігання ключів (де зберігаються паролі), файл, розташований у user.home.
Якщо з якоїсь причини, user.homeяка не вирішила себе належним чином до повноцінного шляху, Eclipse не запуститься.
Спочатку піднімався в цьому запитанні ТА , якщо ви відчуваєте це, вам потрібно буде визначити файл зберігання ключів явним шляхом (більше не користувач.дома вирішувати на початку)

Додайте свої eclipse.ini:

-eclipse.keyring 
C:\eclipse\keyring.txt

Це було відстежено помилкою 300577 , це було вирішено в цьому іншому питанні .


Режим налагодження

Зачекайте, у програмі Eclipse є декілька файлів налаштувань.
якщо ви додасте до eclipse.iniцього параметра:

-debug

, ви включаєте режим налагодження, і Eclipse буде шукати інший файл налаштування: .optionsфайл, де ви можете вказати деякі параметри OSGI.
І це чудово, коли ви додаєте нові плагіни через папку "Droins".
Додайте у свій .option файл такі параметри, як описано в цій публікації щоденника " Діагностика крапель " :

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 залежить від ЕРС, якої немає.
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.

Де приємні маркери помилок?


Manifest Classpath

Дивіться цю публікацію в блозі :

  • У Galileo (він же Eclipse 3.5) JDT почав розв'язувати маніфестний класний шлях у бібліотеках, доданих до шляху збирання проекту. Це спрацьовувало, чи додано бібліотеку до шляху збирання проекту безпосередньо або через контейнер classpath, наприклад, об'єкт бібліотеки користувачів, що надається JDT, або один, реалізований третьою стороною.
  • У Helios цю поведінку було змінено, щоб виключити контейнери classpath з явної роздільної здатності classpath.

Це означає, що деякі ваші проекти можуть більше не збиратися в Helios.
Якщо ви хочете повернутися до поведінки Галілея, додайте:

-DresolveReferencedLibrariesForContainers=true

Див. Помилку 305037 , помилку 313965 та помилку 313890 для довідок.


Стек IPV4

У цьому запитанні ТА згадується потенційне виправлення, коли немає доступу до сайтів оновлення плагінів:

-Djava.net.preferIPv4Stack=true

Тут згадується про всяк випадок, якщо це може допомогти у вашій конфігурації.


JVM1.7x64 потенційні оптимізації

Ця стаття повідомляє:

Для запису, найшвидші варіанти, які я знайшов поки що для мого стендового тесту з версією 1.7 x64 JVM n Windows, є:

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

Але я все ще працюю над цим ...


Згідно з цим посиланням, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , для використання -XX: + CMSIncrementalMode потрібно мати -XX: + UseConcMarkSweepGC. Цього немає у вашому прикладі вище. Нам не знадобиться CMSIncrementalMode у випадку, якщо ми використовуємо G1 GC, я прав?
RuntimeException

1
Гей, G1GC - це лихо на Mac. Він з'їдає всю машину, вимагаючи перезавантаження.
bmargulies

4
@VonC: -XX:CompileThreshold=5причини жахливих вповільнень для мене. Позбувшись цієї опції, скоротити час запуску Eclipse до 17 секунд від> 1 хв !! Не кажучи вже про те, як жахливо сповільнився ІДЕ загалом. Дивіться це посилання
TrinitronX

3
@TrinitronX: (і насправді всі) -XX:CompileThreshold=5- це дуже низьке значення (за замовчуванням = 10000). Це значення представляє кількість викликів / гілок методів перед його компілюванням. Занадто низьке значення призведе до того, що ваш CodeCache заповниться передчасно, і консоль може повідомити: CodeCache is full. Compiler has been disabled Після того, як компілятор відключений, ви помітите повільність у програмі. Виправити це можна двома способами: 1. Використовуйте -XX:CompileThreshold=1000(чітко налаштуйте це число) або 2. Спробуйте збільшити розмір кешу коду, використовуючи -XX:ReservedCodeCacheSize=64m(подвійне від 32 м за замовчуванням)
Drupad Panchal

4
для використання linux /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so для jvm location
r15habh

76

Параметри Eclipse Galileo 3.5 і 3.5.1

В даний час (листопад 2009 р.) Я тестую з оновленням jdk6 17 наступний набір параметрів конфігурації (з Galileo - eclipse 3.5.x, див. Нижче для 3.4 або вище для Helios 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

затемнення.ini 3.5.1

-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

Дивіться також мою оригінальну відповідь вище для отримання додаткової інформації.

Зміни (з липня 2009 р.)

  • стосується пускової установки, а не рамки
  • спільні плагіни: org.eclipse.equinox.p2.reconciler.dropins.directoryопція.
  • Galileo повністю підтримує відносні шляхи для робочого простору або VM (слід уникати того , щоб змінити ті з однієї установки затемнення до іншого, якщо, звичайно, ваш JVM і робочий простір залишаються тими ж)
    Перед тим , ці відносні шляхи тримали переписується в абсолютні , коли затемнення почав себе ...
  • Ви також можете скопіювати каталог JRE інсталяції Java JDK всередині своєї книги затемнення

Коваджі

Була помилка з ігнорованими точками перерви, фактично пов’язаними з JDK.
Використовуйте JDK6u16 або новішу версію для запуску затемнення (Ви можете визначити стільки JDK, які ви хочете скласти під час затемнення: це не тому, що ви запускаєте затемнення з JDK6, вам доведеться компілювати з тим самим JDK).

Макс

Зверніть увагу на використання:

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m

Як зафіксовано у Вікі Eclipse ,

Eclipse 3.3 підтримує новий аргумент в пускову: --launcher.XXMaxPermSize.
Якщо використовувана VM - це VM Sun, а -XX:MaxPermSize=аргумент VM вже не існує , то запускається програма автоматично додасть -XX:MaxPermSize=256mдо списку використовуваних аргументів VM.
3.3 пускова установка здатна ідентифікувати лише віртуальну машину Sun у Windows.

Як детально в цьому записі :

Не всі vms приймають -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 3.5x64: --launcher.library плагіни / org.eclipse.equinox.launcher.win32.win32.x86_64_1.0.200.v20090519-плагіни запуску / org.eclipse.equinox.launcher_1 .0.200.v20090520.jar також мені довелося використовувати jdk JAVA_HOME / bin / javaw, для плагіна m2eclipse. Інакше це шалено дивовижно.
Натан Фегер

Хіба ці двоє не роблять те саме? "--launcher.XXMaxPermSize 384m" та "-XX: MaxPermSize = 128м"
Ігор Зінов'єв

@Igor Zinov'yev: це трохи зайве, але обидва можуть бути корисними, залежно від версії платформи та eclipse. Я скинув їх на одне значення і доповнив свою відповідь трохи документацією щодо цих параметрів.
VonC

Дивіться також stackoverflow.com/questions/2204173 / ...
VonC

Якщо ви завжди хочете використовувати найновіший і найбільший VM, тоді чому аргумент "-Dosgi.requiredJavaVersion = 1.5" не використовує 1.6?
Tony R

63

Налаштування Eclipse Ganymede 3.4.2


Більш пізні параметри див. У розділі Налаштування Eclipse Galileo 3.5 вище .


JDK

Найкращий параметр JVM завжди , на мою думку, включає найновіший JDK, який ви можете знайти (так, на даний момент jdk1.6.0_b07 до b16, крім b14 та b15 )

затемнення.іні

Навіть з тими досить низькими налаштуваннями пам’яті, я можу запускати великі проекти Java (разом із веб-сервером) на своєму старому (2002 р.) Робочому столі з 2Go ОЗУ.

-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

Див SO відповідь GKelly в і запис в блозі Петра Gabryanczyk в більш детальну інформацію про нові можливості.

Моніторинг

Ви також можете розглянути можливість запуску:

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

Як було сказано в попередньому запитанні про споживання пам'яті .


1
для чого це -Xssv2m, коли я включаю його в налаштування vm eclipse navant start, я подивився на документи для налаштувань JVM, але не зміг його знайти
Craig Angus

Так ... це був помилка помилки: Xss2m, а не Xssv2m: -Xss визначає розмір стека: -Xss1024k. Якщо простір стека занадто малий, з часом ви побачите клас винятків java.lang.StackOverflowError (міфічне повідомлення про помилку тут ;-))
VonC

Нарешті обійшов використання другого набору налаштувань і вразив, наскільки добре вони працюють!
Крейг Ангус

У вас був шанс скористатися налаштуваннями деякий час, затемнення здається спритним, але робити збирання мурашок здається повільніше ???
Крейг Ангус

@Craig Angus: дивно, яку версію затемнення ви використовуєте? І яка в ньому версія мурахи включена?
VonC

20

Налаштування Eclipse Indigo 3.7.2 (64-бітний Linux)

Налаштування для версії Java / Sun 1.6 Oracle "1.6.0_31" та Eclipse 3.7, що працює на x86-64 Linux:

-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 МБ для купи і 150 Мб для негромади. Якщо ви використовуєте величезні плагіни, ви можете збільшити межі "-Xmx200m" та "-XX: MaxPermSize = 150м".

Основною метою оптимізації для цих прапорів було мінімізація затримки у всіх випадках, а як вторинна оптимізаційна ціль мінімізація використання пам'яті.


Діє для мене фантастично (хоча я подвоїв значення для налаштувань, пов’язаних із пам’яттю, він все ще низький і швидко пухирчастий!)
Актау,

У вас є обидва -XX: + UseConcMarkSweepGC та -XX: + UseParNewGC. Чому? Я не думаю, що ви можете використовувати обидва сміттєзбірники, і я не впевнений, який з них нарешті звикне.
герман

Я подумав, що -XX: + UseConcMarkSweepGC призначений для збору сміття старого покоління та -XX: + UseParNewGC використовується для збору сміття.
Мікко Ранталайнен


3
Кожна опція та кожен аргумент до опції повинні бути у своєму рядку.
Джош Клемм

14

-показ

Щоб було легше двічі запускати затемнення і знати, з яким робочим простором ви маєте справу

Eclipse 3.6 додає параметр налаштувань, щоб вказати, що показувати, Workspace name (shown in window title)що працює набагато краще, ніж -showlocationз трьох причин:

  1. Вам не потрібно перезапускати затемнення, щоб воно вплинуло.
  2. Ви можете вибрати короткий код.
  3. Він з’являється спочатку перед перспективою та назвою програми.

9

Якщо ви збираєтесь з оновленням jdk6 14, я б запропонував використовувати сміттєзбірник G1, який, здається, допомагає зробити його ефективнішим.

Для цього видаліть ці налаштування:

-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing

і замініть їх такими:

-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC


9

Якщо ви використовуєте Linux + Sun JDK / JRE 32bit , змініть "-vm" на:

-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

Якщо ви використовуєте Linux + Sun JDK / JRE 64bit , змініть "-vm" на:

-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

Це добре працює для мене на Ubuntu 8.10 та 9.04


Це Eclipse для використання JDK в якості середовища за замовчуванням?
Thorbjørn Ravn Andersen

Це може бути використано, щоб Eclipse використовував специфічний / інший JDK як середовище за замовчуванням.
Гілберто Олімпіо

7

Ви також можете спробувати працювати з JRockit . Це JVM, оптимізований для серверів, але багато довгих клієнтських додатків, як IDE, дуже добре працюють на JRockit. Затемнення не є винятком. У JRockit немає простір-проміжок, тому вам не потрібно його налаштовувати.

Можна встановити ціль часу паузи (мс), щоб уникнути довгих пауз gc, що зупиняють інтерфейс користувача.

-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

Зазвичай я не переймаюся налаштуваннями -Xmx і -Xms і дозволяю JRockit вирощувати купу, як вважає за потрібне. Якщо ви запускаєте програму Eclipse за допомогою JRockit, ви також можете відстежувати, профілювати та знаходити витоки пам’яті у вашій програмі, використовуючи інструменти інструментів контролю місії JRockit. Ви завантажуєте плагіни з цього веб-сайту оновлення . Зауважте, працює лише для Eclipse 3.3 та Eclipse 3.4


Я минув затьмарення на JRockit і минув дуже добре
Крейг Ангус

5

Ось моя власна установка для мого Eclipse, який працює на i7 2630M 16 Гб оперативної пам’яті, цей параметр використовується вже тиждень, без жодного збою, і 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

  • Xms = фізична пам'ять / 16
  • Xmx = фізична пам'ять / 4
  • MaxPermSize = Те саме, що значення за замовчуванням - 256м

Вау 16G ноутбук? Мені цікаво. Це System76? : D
Філ

5
-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

І ці налаштування спрацювали як шарм для мене. У мене працює ОС X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24


Дякую, це трохи допомогло моїй роботі (подібна настройка). Але я наткнувся на максимальний розмір купи до 1024 МБ.
Джефф Еванс

4

Мої власні налаштування (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

3

Eclipse любить багато оперативної пам'яті. Використовуйте принаймні -Xmx512M. Більше, якщо вони доступні.



2

XX: + UseParallelGC - це найдивовижніший варіант коли-небудь !!!


1

-vm
C: \ програмні файли \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

Щоб вказати версію Java, яку ви використовуєте, і використовуйте dll замість запуску процесу javaw


0

Ось що я використовую (хоча я маю їх у ярлику замість файлу налаштувань):

eclipse.exe -showlocation -vm "C: \ Java \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128М

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.