Каковы лучшие настройки JVM для Eclipse? [закрыто]

315

Каковы наилучшие настройки JVM, которые вы нашли для запуска Eclipse?

Крейг Ангус
источник
8
Новые и улучшенные eclipse.iniнастройки для Helios 3.6 находятся здесь (ниже, в новом ответе): stackoverflow.com/questions/142357/…
VonC
6
Удивительно, что вопрос, закрытый как
неконструктивный,
1
Этот вопрос был задан, когда самым последним ответом на такой вопрос в 2008 году был eclipsezone.com/eclipse/forums/t20732.html . Набор ответов вырос, потому что были выпущены новые версии Eclipse и Java, последующие обновления сохранили ответы свежими. Закрытие вопроса приведет к тому, что ответы станут устаревшими. Единственный способ перефразировать этот вопрос - придать ему конкретную версию, что, на мой взгляд, еще хуже, так как это может привести к тому, что несколько вопросов ответят в основном на одну и ту же проблему
Крейг Ангус,
10
Согласитесь - закрытие таких вопросов - это безумие - безумие, которое я вам говорю, - такие вопросы являются самыми полезными и интересными на сайте!
Луиджи Плинге
3
Согласно причине закрытия, «мы ожидаем, что ответы, как правило, связаны с фактами, ссылками или конкретными знаниями». Я думаю, что закрытие этого вопроса является натяжкой. Давайте будем осторожны, используя полномочия цензуры. Я бы сказал, что в случае сомнений лучше «позволить знаниям быть свободными» и открыться.
Луисколорадо

Ответы:

315

Это снова время года: «eclipse.ini take 3», настройки отменяются!

Настройки Eclipse Helios 3.6 и 3.6.x

альтернативный текст 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 RAM и XPSp3. Но я также проверил те же самые настройки на Windows7 )

eclipse.ini

альтернативный текст

ВНИМАНИЕ : для платформ, отличных от Windows, используйте проприетарную опцию Sun -XX:MaxPermSizeвместо проприетарной опции Eclipse --launcher.XXMaxPermSize.
То есть: если вы не используете последнюю версию 7 jdk6u21 . Смотрите раздел 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, см. Ниже).

окончательныйрешение есть на Eclipse Wiki и только для Helios на Windows с 6u21 pre build 7 :

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

Вот и все. Здесь нет настроек для настройки (опять же, только для Helios в Windows с 6u21 pre build 7 ).
Для платформ, отличных от Windows, вам необходимо вернуться к частной опции Sun-XX:MaxPermSize .

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

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

Пока я все еще сохраняю -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

Этот вопрос SO сообщает о положительном развитии для Mac OS.


+ UnlockExperimentalVMOptions

Следующие опции являются частью некоторых экспериментальных опций Sun JVM.

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

О них сообщалось в этом сообщении в блоге, чтобы потенциально ускорить Eclipse.
См. Все параметры JVM здесь, а также на официальной странице параметров Java Hotspot .
Примечание: подробный список этих опций сообщает, чтоUseFastAccessorMethods может быть активен по умолчанию.

Смотрите также «Обновите свою JVM» :

Напомним, что G1 - это новый сборщик мусора, который готовится к выпуску JDK 7, но он уже используется в версии 6 от u17.


Открытие файлов в Eclipse из командной строки

Смотрите сообщение в блоге Эндрю Нифера, сообщающее об этой новой опции:

--launcher.defaultAction
openFile

Это говорит программе запуска, что если она вызывается из командной строки, которая содержит только аргументы, которые не начинаются с " -", то эти аргументы должны обрабатываться так, как если бы они следовали " --launcher.openFile".

eclipse myFile.txt

Это вид командной строки, которую программа запуска будет получать в Windows, когда вы дважды щелкаете файл, связанный с Eclipse, или выбираете файлы и выбираете « Open With» или « Send To» Eclipse.

Относительные пути будут разрешаться сначала для текущего рабочего каталога, а затем для программного каталога eclipse.

См. Ошибку 301033 для справки. Первоначально ошибка 4922 (октябрь 2001 года, исправлена ​​9 лет спустя).


p2 и неподписанная диалоговая подсказка

Если вы устали от этого диалогового окна во время установки множества плагинов:

альтернативный текст

, добавьте в свой eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Смотрите этот пост от Криса Анищи и отчет об ошибке 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выше, но могут пригодиться при необходимости.


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

Когда eclipse запустится, он прочитает свой файл хранилища ключей (где хранятся пароли), файл, расположенный в user.home.
Если по какой-то причине это user.homeне приводит к правильному переходу к полноценному пути, Eclipse не запустится.
Изначально поставленный в этом вопросе ТАК , если вы сталкиваетесь с этим, вам нужно переопределить файл хранилища ключей с явным путем (больше нет user.home для разрешения в начале)

Добавьте в свой eclipse.ini:

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

Это было отслежено ошибкой 300577 , это было решено в этом другом SO вопросе .


Режим отладки

Подождите, в Eclipse есть несколько файлов настроек.
если вы добавите в свой eclipse.iniвариант:

-debug

, вы включаете режим отладки, и Eclipse будет искать другой файл настроек: .optionsфайл, в котором вы можете указать некоторые параметры OSGI.
И это здорово, когда вы добавляете новые плагины через папку dropins.
Добавьте в свой файл .options следующие параметры, как описано в этом сообщении в блоге « Диагностика Dropins » :

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2 сообщит вам, какие пакеты были найдены в dropins/папке, какой запрос был сгенерирован и каков план установки. Возможно, это не подробное объяснение того, что на самом деле произошло, и что пошло не так, но оно должно дать вам полную информацию о том, с чего начать:

  • был ли ваш пакет в плане?
  • Была ли это проблема установки (ошибка P2)
  • или может просто не оптимально включить вашу функцию?

Это происходит из-за ошибки 264924 - [Reconciler] Нет диагностики проблем с dropins , что в итоге решает следующую проблему, такую ​​как:

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.

Где хорошие маркеры ошибок?


Манифест Classpath

Смотрите этот пост в блоге :

  • В Galileo (он же 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 

Но я все еще работаю над этим ...

VonC
источник
По этой ссылке, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , вам нужно иметь -XX: + UseConcMarkSweepGC для использования -XX: + CMSIncrementalMode. Этого не хватает в вашем примере выше. Нам не нужен CMSIncrementalMode, если мы используем G1 GC, я прав?
RuntimeException
1
Привет, G1GC - это катастрофа на Mac. Кушает всю машину, требуя перезагрузки.
bmargulies
4
@VonC: -XX:CompileThreshold=5вызывает ужасные замедления для меня. Избавившись только от этой опции, я сократил время запуска Eclipse до 17 секунд с> 1 минуты !! Не говоря уже о том, насколько ужасно медленной была IDE в целом. Смотрите эту ссылку
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
r15habh
76

Настройки Eclipse Galileo 3.5 и 3.5.1

В настоящее время (ноябрь 2009 г.) я тестирую с обновлением 17 jdk6 следующий набор параметров конфигурации (с 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

eclipse.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 поддерживает полностью относительные пути для рабочей области или виртуальной машины (избегайте необходимости изменять их из одной установки Eclipse в другую, если, конечно, ваша JVM и рабочая область остаются прежними)
    Раньше эти относительные пути продолжали переписываться в абсолютные, когда Eclipse запускалась сама ...
  • Вы также можете скопировать каталог JRE установки Java JDK в свой каталог eclipse

Предостережения

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

Максимум

Обратите внимание на использование:

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

Как описано в Eclipse Wiki ,

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

Как подробно в этой записи :

Не все VMS принимают -XX:MaxPermSizeаргумент, поэтому он передается таким образом. Могут (или не могут) существовать проблемы с идентификацией ВС VMS.
Примечание. В Eclipse 3.3.1 есть ошибка, из-за которой программа запуска не может обнаружить виртуальную машину Sun и поэтому не использует правильный размер PermGen. Похоже, что это также была известная ошибка в Mac OS X для 3.3.0 .
Если вы используете любую из этих комбинаций платформ, добавьте -XXфлаг к eclipse.iniописанному выше.

Ноты:

  • 384mстрока " " переводится в " =384m" часть аргумента VM, если виртуальная машина чувствительна к регистру на " m", то этот аргумент так же.
  • --launcher.префикс " ", это указывает, что аргумент используется самой программой запуска и был добавлен в конкретные параметры программы запуска, чтобы избежать конфликтов имен с аргументами приложения. (Другие примеры --launcher.library, --launcher.suppressErrors)

-vmargs -XX:MaxPermSize=384mЧасть аргумент передается непосредственно в VM, минуя пусковой целик и никакой проверки на поставщике VM не используется.

VonC
источник
У меня была пара проблем с этим в последнем выпуске eclipse 3.5x64: .0.200.v20090520.jar также мне пришлось использовать jdk JAVA_HOME / bin / javaw, для плагина m2eclipse. В противном случае это безумно круто.
Натан Фегер
Разве эти двое не делают одно и то же? «--launcher.XXMaxPermSize 384m» и «-XX: MaxPermSize = 128m»
Игорь Зиновьев
@ Игорь Зиновьев: это немного избыточно, но оба могут быть полезны, в зависимости от платформы и версии затмения. Я сбросил их до того же значения и завершил свой ответ небольшим количеством документации, касающейся этих настроек.
VonC
Если вы всегда хотите использовать новейшую и лучшую виртуальную машину, то почему аргумент "-Dosgi.requiredJavaVersion = 1.5" не использует 1.6?
Тони Р
63

Настройки Eclipse Ganymede 3.4.2


Более свежие настройки см. В разделе «Настройки Eclipse Galileo 3.5» выше .


JDK

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

eclipse.ini

Даже с такими довольно низкими настройками памяти я могу запускать большие проекты Java (вместе с веб-сервером) на моем старом (2002) рабочем столе с 2Go RAM.

-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

Как сказано в предыдущем вопросе о потреблении памяти .

VonC
источник
1
для чего -Xssv2m, когда я включаю его в настройки vm, eclipse не запустится, взглянул на документы по настройкам JVM, но не смог его найти
Крейг Ангус,
Правильно ... это была опечатка: Xss2m, а не Xssv2m: -Xss определяет размер стека: -Xss1024k. Если пространство в стеке слишком мало, в конечном итоге вы увидите класс исключения java.lang.StackOverflowError (здесь появляется мифическое сообщение об ошибке ;-))
VonC
Наконец-то дошли руки до использования второго набора настроек и удивились тому, насколько хорошо они работают!
Крейг Ангус
У вас была возможность использовать настройки некоторое время, затмение кажется быстрым, но сборка муравьев кажется медленнее ???
Крейг Ангус
@Craig Angus: странно, какую версию Eclipse вы используете? И какая версия муравья включена в него?
VonC
20

Настройки Eclipse Indigo 3.7.2 (64-разрядная версия Linux)

Настройки для Sun / Oracle java версии "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 = 150m".

Основной целью оптимизации для этих флагов было минимизировать задержку во всех случаях, а в качестве дополнительной цели оптимизации минимизировать использование памяти.

Микко Ранталайнен
источник
Работает фантастически для меня (хотя я удвоил значения для настроек, связанных с памятью, он все еще низок и быстро вспыхивает!)
Актау
У вас есть оба -XX: + UseConcMarkSweepGC и -XX: + UseParNewGC. Зачем? Я не думаю, что вы можете использовать оба сборщика мусора, и я не уверен, какой из них, наконец, привыкнет.
herman
Я думал, что -XX: + UseConcMarkSweepGC - для сборки мусора старого поколения, а -XX: + UseParNewGC - для сборки мусора eden.
Микко Ранталайнен
Смотрите также: blogs.oracle.com/jonthecollector/entry/our_collectors
Микко Ранталайнен,
3
Каждая опция и каждый аргумент опции должны быть в отдельной строке.
Джош Клемм,
14

-showlocation

Чтобы было проще запустить Eclipse дважды и знать, с какой рабочей областью вы имеете дело

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

  1. Вам не нужно перезапускать затмение, чтобы оно вступило в силу.
  2. Вы можете выбрать короткий код.
  3. Он появляется первым, перед перспективой и именем приложения.
Стивен Денн
источник
9

Если вы собираетесь использовать обновление 14 для jdk6, я бы предложил использовать сборщик мусора 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 в качестве среды по умолчанию?
Торбьерн Равн Андерсен
Это можно использовать, чтобы 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 Mission Control. Вы загружаете плагины с этого сайта обновления . Обратите внимание, работает только для 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 м
Фигурные скобки
источник
Wow 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

И эти настройки сработали как очарование для меня. Я использую OS 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

Затмение любит много оперативной памяти. Используйте как минимум -Xmx512M. Больше, если доступно.

кругозор
источник
3

Если вы похожи на меня и у вас были проблемы с текущей версией Oracle версии 1.6, вы можете обновить JDK или установить

-XX: MaxPermSize
, Более подробная информация доступна здесь: http://java.dzone.com/articles/latest-java-update-fixes

Пол Грегуар
источник
2

XX: + UseParallelGC это самый крутой вариант когда-либо !!!


источник
1

-vm
C: \ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

Чтобы указать, какую версию Java вы используете, и использовать DLL вместо запуска процесса Java

Стивен Денн
источник
0

Вот что я использую (хотя они есть в ярлыке вместо файла настроек):

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

Дейв Л.
источник