Какие лучшие настройки JVM вы нашли для запуска Eclipse?
Удивительно, что вопрос, закрытый как неконструктивный, имеет такую высокую оценку ...
Этот вопрос был задан, когда последний ответ на подобный вопрос в 2008 году был eclipsezone.com/eclipse/forums/t20732.html. Набор ответов увеличился, потому что были выпущены новые версии eclipse и java, последующие обновления сохранили ответы свежими. Закрытие вопроса приведет к тому, что ответы станут устаревшими. Единственный способ перефразировать этот вопрос, который я могу придумать, - это сделать его конкретной версией, что, на мой взгляд, хуже, так как это приведет к тому, что несколько вопросов будут отвечать в основном на одну и ту же проблему.
Согласитесь - такие закрывающие вопросы - это безумие - безумие Я вам говорю - такие вопросы самые полезные и интересные на сайте!
Согласно причине закрытия: «Мы ожидаем, что ответы, как правило, будут включать факты, ссылки или конкретный опыт». Я думаю, что закрывать этот вопрос - натяжка. Будем осторожны с цензурой. Я бы сказал, что в случае сомнений лучше «позволить знаниям быть свободными» и открытыми.





Вот что я использую (правда, у меня они есть в ярлыке вместо файла настроек):
eclipse.exe -showlocation -vm "C: \ Java \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128M
Eclipse любит много оперативной памяти. Используйте как минимум -Xmx512M. Больше, если доступно.
-vm
C: \ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll
Чтобы указать, какую версию java вы используете, и использовать dll вместо запуска процесса javaw
-показ
Чтобы упростить запуск eclipse дважды и знать, с какой рабочей областью вы имеете дело
Eclipse 3.6 добавляет параметр предпочтений, чтобы указать, что показывать для Workspace name (shown in window title), который работает намного лучше, чем -showlocation, по трем причинам:
Более свежие настройки см. В разделе Настройки Eclipse Galileo 3.5 выше.
Лучшая настройка JVM всегда, на мой взгляд, включает последний JDK вы можете найти (так что пока от jdk1.6.0_b07 до b16, кроме b14 и b15)
Даже с этими довольно низкими настройками памяти я могу запускать большие 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
См. Так ответ GKelly и Запись в блоге Петра Габрянчика для получения более подробной информации о новых параметрах.
Вы также можете рассмотреть возможность запуска:
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
Как сказано в предыдущий вопрос о потреблении памяти.
что такое -Xssv2m, когда я включаю его в настройки vm, eclipse не запускается, просмотрел документы для настроек JVM, но не смог его найти
Верно ... это была опечатка: Xss2m, а не Xssv2m: -Xss определяет размер стека: -Xss1024k. Если пространство стека слишком мало, в конечном итоге вы увидите класс исключения java.lang.StackOverflowError (мифическое сообщение об ошибке здесь ;-))
Наконец дошли до использования второго набора настроек и поразились тому, насколько хорошо они работают!
Уже какое-то время у вас была возможность использовать настройки, eclipse кажется быстрым, но создание муравьиной сборки кажется медленнее ???
@ Крэйг Ангус: странно, какую версию eclipse вы используете? И какая версия муравья в него входит?
@VonC: 3.5M5 более старая версия antVersion от 3.4, пока не могу проверить, так как в настоящее время не разрабатывается с использованием eclipse на достаточно регулярной основе
@Craig: хорошо, я проверю эти настройки на моем eclipse3.5M5 дома в эти выходные (я использую только 3.4 на работе)
jdk6_u16 содержит исправление для игнорируемых точек останова
Если вы используете Linux + Sun JDK / JRE 32 бита, измените "-vm" на:
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
Если вы используете Linux + Sun JDK / JRE 64 бит, измените "-vm" на:
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
У меня это отлично работает на Ubuntu 8.10 и 9.04.
Должен ли Eclipse использовать JDK в качестве среды по умолчанию?
Это можно использовать, чтобы Eclipse использовал конкретный / другой JDK в качестве среды по умолчанию.
Если вы собираетесь использовать jdk6 update 14, я бы посоветовал использовать сборщик мусора G1, который, кажется, повышает производительность.
Для этого удалите эти настройки:
-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing
и замените их этими:
-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC
В настоящее время (ноябрь 2009 г.) я тестирую с jdk6 update 17 следующий набор параметров конфигурации (с Galileo - eclipse 3.5.x, см. ниже для 3.4 или выше для Гелиос 3.6.х):
(конечно, адаптируйте относительные пути, представленные в этом eclipse.ini, к правильным путям для вашей установки)
Примечание: для затмение3.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.
Используйте JDK6u16 или более позднюю версию для запуск eclipse (затем вы можете определить столько JDK, сколько хотите скомпилировать в пределах eclipse: это не потому, что вы запускаете eclipse с JDK6, вам придется скомпилировать с тем же JDK).
Обратите внимание на использование:
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
Как указано в Затмение вики,
Eclipse 3.3 supports a new argument to the launcher:
--launcher.XXMaxPermSize.
If the VM being used is a Sun VM and there is not already a-XX:MaxPermSize=VM argument, then the launcher will automatically add-XX:MaxPermSize=256mto the list of VM arguments being used.
The 3.3 launcher is only capable of identifying Sun VMs on Windows.
Как подробно описано в эта запись:
Not all vms accept the
-XX:MaxPermSizeargument which is why it is passed in this manner. There may (or may not) exist problems with identifying sun vms.
Note: Eclipse 3.3.1 has a bug where the launcher cannot detect a Sun VM, and therefore does not use the correct PermGen size. It seems this may have been a known bug on Mac OS X for 3.3.0 as well.
If you are using either of these platform combination, add the-XXflag to theeclipse.inias described above.Notes:
- the "
384m" line translates to the "=384m" part of the VM argument, if the VM is case sensitive on the "m", then the so is this argument.- the "
--launcher." prefix, this specifies that the argument is consumed by the launcher itself and was added to launcher specific arguments to avoid name collisions with application arguments. (Other examples are--launcher.library,--launcher.suppressErrors)The
-vmargs -XX:MaxPermSize=384mpart is the argument passed directly to the VM, bypassing the launcher entirely and no check on the VM vendor is used.
У меня было несколько проблем с этим для последней версии eclipse 3.5x64: --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_64_1.0. 200.v20090519 -startup plugins / org.eclipse .equinox.launcher_1.0.200.v20090520.jar также мне пришлось использовать jdk JAVA_HOME / bin / javaw для плагина m2eclipse. В остальном это безумно круто.
Разве эти двое не делают одно и то же? "--launcher.XXMaxPermSize 384m" и "-XX: MaxPermSize = 128m"
@ Игорь Зиновьев: это немного избыточно, но оба могут быть полезны, в зависимости от платформы и версии eclipse. Я сбросил их до того же значения и завершил свой ответ небольшой документацией по этим настройкам.
См. Также stackoverflow.com/questions/2204173/…
Если вы всегда хотите использовать самую последнюю и лучшую виртуальную машину, то почему аргумент "-Dosgi.requiredJavaVersion = 1.5" не использует 1.6?
@Tony: Я оставил это здесь, потому что некоторые из моих пользователей не всегда использовали JRE6 для запуска eclipse. Для Helios (3.6) опубликую обновленный ответ с 1.6 для osgi.requiredJavaVersion
@VonC, обновление 21 Java 6 вновь вызывает проблемы с перманентом, потому что поставщик jvm сменился с Sun на Oracle. aniefer.blogspot.com/2010/07/…
@ Андрей: Принято к сведению. Ответ о настройках Eclipse Helios появится на следующих выходных
XX: + UseParallelGC - это самый крутой вариант !!!
Вы также можете попробовать запустить JRockit. Это JVM, оптимизированная для серверов, но многие давно работающие клиентские приложения, такие как IDE, очень хорошо работают на JRockit. Eclipse - не исключение. 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.
Я запускал eclipse на JRockit в прошлом и работал очень хорошо
Мои собственные настройки (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. More information is available here: http://java.dzone.com/articles/latest-java-update-fixes
Вот моя собственная настройка для моего 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
Ничего себе ноутбук 16G? Мне любопытно. Это System76? : D
-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 МБ.
Настройки для Солнце / Oracle Java версии "1.6.0_31" и Затмение 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. Почему? Я не думаю, что вы можете использовать оба сборщика мусора, и я не уверен, какой из них в конечном итоге используется.
Я думал, что -XX: + UseConcMarkSweepGC предназначен для сборки мусора старого поколения, а -XX: + UseParNewGC используется для сборки мусора eden.
См. Также: blogs.oracle.com/jonthecollector/entry/our_collectors
Каждая опция и каждый аргумент опции должны быть в отдельной строке.
@JoshClemm Только если вы поместите эти настройки в eclipse.ini. Я вызываю исполняемый файл eclipse с этими параметрами командной строки, и вы не должны использовать там перевод строки.
SSD с 16 гигабайтами оперативной памяти. Установите «-Xmx4G» и «-XX: MaxPermSize = 3G. Работает как мечта.
Новые и улучшенные настройки
eclipse.iniдля Helios 3.6 находятся здесь (ниже, в новом ответе): stackoverflow.com/questions/142357/…