Eclipse için en iyi JVM ayarları nelerdir? [kapalı]


315

Eclipse'i çalıştırmak için bulduğunuz en iyi JVM ayarları nelerdir?


8
eclipse.iniHelios 3.6 için yeni ve geliştirilmiş ayarlar burada (aşağıda, yeni bir cevapta): stackoverflow.com/questions/142357/…
VonC

6
Yapıcı değil olarak kapatılan sorunun böyle yüksek bir
dereceye

1
Bu soru, 2008 yılında böyle bir soruya en son yanıtın eclipsezone.com/eclipse/forums/t20732.html olduğu soruldu . Eclipse ve java'nın yeni sürümleri piyasaya sürüldüğünden, yanıt seti büyüdü, sonraki güncellemeler cevapları taze tuttu. Sorunun kapatılması cevapların bayatlamasına neden olacaktır. Bu soruyu yeniden ifade etmeyi düşünebileceğim tek yol, sürümü belirli hale getirmek olacaktır, ki bu da temel olarak aynı soruyu cevaplamak için birden fazla sorunun neden olacağından daha kötü olduğunu düşünüyorum
Craig Angus

10
Kabul - Böyle kapanış soruları olan delilik - delilik Sana söylemek - bu gibi sorular sitedeki en faydalı ve ilginç!
Luigi Plinge

3
Kapanış nedenine göre, "Yanıtların genellikle gerçekleri, referansları veya spesifik uzmanlığı içermesini bekliyoruz". Bu sorunun kapatılmasının bir streç olduğunu düşünüyorum. Sansür güçlerini kullanırken dikkatli olalım. Şüphe durumunda "bilginin özgür olmasına izin vermek" ve açık olmak daha iyidir.
luiscolorado

Yanıtlar:


315

Yine yılın bu zamanı: "eclipse.ini 3 alır" ayarları geri grev!

Eclipse Helios 3.6 ve 3.6.x ayarları

alternatif metin http://www.eclipse.org/home/promotions/friends-helios/helios.png

Eclipse Ganymede 3.4.x ve Eclipse Galileo 3.5.x için ayarlardan sonra , Eclipse Helios 3.6.x için "optimize edilmiş" eclipse.ini ayar dosyasına derinlemesine bir bakış :

( "optimize edilmiş" ile, işyerinde berbat iş istasyonumuzda, 2002'den 2Go RAM ve XPSp3 ile bazı eski P4'lerde tam bir Eclipse çalıştırabilirim. Ama aynı ayarları Windows7'de de test ettim )

Eclipse.ini

alternatif metin

UYARI : Windows olmayan platformlar için, -XX:MaxPermSizeEclipse tescilli seçeneği yerine Sun'a özel seçeneği kullanın --launcher.XXMaxPermSize.
Yani: En son jdk6u21 build 7'yi kullanmadığınız sürece . Aşağıdaki Oracle bölümüne bakın.

-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

Not: seçeneğini istediğiniz harici bir dizine
uyarlayın p2.reconciler.dropins.directory.
Bu SO cevabına bakın . Fikir, herhangi bir Eclipse kurulumundan bağımsız olarak bir dizine yeni eklentiler bırakabilmektir.

Aşağıdaki bölümlerde bu eclipse.inidosyada neler olduğu ayrıntılı olarak anlatılmaktadır.


Korkunç Oracle JVM 1.6u21 (inşa öncesi 7) ve Eclipse çöküyor

Andrew Niefer bu durum hakkında beni uyardı ve standart olmayan bir vm argümanı ( ) hakkında bir blog yazısı yazdı -XX:MaxPermSizeve diğer satıcılardan gelen vms'nin başlamamasına neden olabilir.
Ancak bu seçeneğin ( --launcher.XXMaxPermSize) tutulma sürümü yeni JDK ile çalışmıyor (6u21 build 7'yi kullanmadığınız sürece 6u21, aşağıya bakın).

nihaiçözümü Eclipse Wiki'de ve sadece 6u21 pre build 7 ile Windows'ta Helios için:

(Eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503

Bu kadar. Burada ayar yapmak için bir ayar yok (yine, sadece 6u21 ön derleme 7'ye sahip Windows'ta Helios için ).
Windows olmayan platform için, Sun'a özel seçeneğe geri dönmeniz gerekir -XX:MaxPermSize.

Sorun bir gerilemeye dayanıyor: Java.exe'de Oracle'ın yeniden markalanması nedeniyle JVM tanımlaması başarısız oluyor ve Eclipse üzerinde hata 319514 tetikleniyor .
Andrew Bug 320005 ile ilgileniyordu - [başlatıcı] --launcher.XXMaxPermSize: isSunVMOracle için doğru dönmeli , ama bu sadece Helios 3.6.1 için olacak. Başka bir Tutulma komisyoncusu olan
Francis Upton , tüm durumu yansıtıyor .

U21b7 güncellemesi, 27 Temmuz :
Oracle, bir sonraki Java 6 sürümü için değişikliği reddetti ve JDK 7'ye kadar tekrar uygulamaz .
Eğer kullanırsanız 7 build jdk6u21 , sen dönebilirsiniz --launcher.XXMaxPermSize(Tutulma seçeneği) yerine -XX:MaxPermSize(standart dışı seçenek). C başlatıcısı pul oluyor otomatik algılama hala arayacaktır "
eclipse.exeSun Microsystems " dizesi, ancak 6u21b7 ile bu iş şimdi olacak - yine.

Şimdilik, -XX:MaxPermSizesürümü hala koruyorum (çünkü herkesin doğru JDK'yi tutmaya ne zaman başlayacağını bilmiyorum ).


Örtük `-startup` ve` --launcher.library`

Önceki ayarların aksine, bu modüller için kesin yol artık ayarlanmamıştır, çünkü farklı Eclipse 3.6.x sürümleri arasında değişiklik gösterebilir:

  • startup: Belirtilmezse, yürütülebilir dosya org.eclipse.equinox.launcheren yüksek sürüme sahip paket için plugins dizinine bakar .
  • launcher.library: Belirtilmezse, yürütülebilir dosya en yüksek sürüme sahip pluginsuygun org.eclipse.equinox.launcher.[platform]parçayı arar ve eclipse_*inside adlı paylaşılan kitaplığı kullanır .

JDK6 kullanın

JDK6 artık Eclipse'i başlatmak için açıkça gerekli:

-Dosgi.requiredJavaVersion = 1.6

Bu SO sorusu Mac OS'de gelişme için olumlu bir insidans bildirmektedir.


+ UnlockExperimentalVMOptions

Aşağıdaki seçenekler, Sun JVM'nin bazı deneysel seçeneklerinin bir parçasıdır.

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

Bu blog yazısında Eclipse'yi potansiyel olarak hızlandırdıkları bildirildi .
Tüm JVM seçeneklerini burada ve ayrıca resmi Java Hotspot seçenekleri sayfasında görün .
Not: Bu seçenek raporlarının ayrıntılı listesi,UseFastAccessorMethods varsayılan olarak etkin olabilir.

Ayrıca bkz. "JVM'nizi güncelleme" :

Bir hatırlatma olarak, G1, JDK 7'ye hazırlanmakta olan yeni çöp toplayıcıdır, ancak u17'den 6 sürümünde zaten kullanılmaktadır.


Eclipse'deki dosyaları komut satırından açma

Bu yeni seçeneği bildiren Andrew Niefer'in blog yayınına bakın :

--launcher.defaultAction
openFile

Bu, başlatıcıya yalnızca " -" ile başlamayan bağımsız değişkenler içeren bir komut satırı ile çağrılırsa , bu bağımsız değişkenlere " --launcher.openFile" izledikleri gibi davranılması gerektiğini bildirir .

eclipse myFile.txt

Bu, eclipse ile ilişkili bir dosyayı çift tıklattığınızda veya dosyaları seçip " Open With" veya " Send To" Eclipse'i seçtiğinizde başlatıcının pencerelerde alacağı komut satırı türüdür .

Göreceli yollar önce geçerli çalışma dizinine, sonra da eclipse program dizinine göre çözümlenir.

Referans için hata 301033'e bakın . Başlangıçta hata 4922 (Ekim 2001, 9 yıl sonra düzeltildi).


p2 ve İmzasız İletişim Kutusu İstemi

Birçok eklentinizin yüklenmesi sırasında bu iletişim kutusundan sıkıldıysanız:

alternatif metin

ekleyin eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Bu Bkz blog yazısı dan Chris Aniszczy ve hata raporu 235.526 .

Güvenlik araştırmasının daha az bilgi isteminin daha iyi olduğu gerçeğini desteklediğini söylemek istiyorum.
İnsanlar, yapmak istedikleri bir şeyin akışında ortaya çıkan şeyleri görmezden gelirler.

3.6 için, akışın ortasında uyarılar açmamalıyız - ne kadar basitleştirersek olalım, insanlar onları görmezden geleceklerdir.
Bunun yerine, do, tüm sorunları toplamak gerekir değil problemleri olanlar paketi yükleyebilirsiniz ve bunun yerine fixup olabilir iş akışında bir noktaya kullanıcı geri getirmek - Bu denir vb daha gevşek eklenti güven, configure güvenlik politikasını 'güvenli evreleme ' .

---------- http://www.eclipse.org/home/categories/images/wiki.gif alternatif metin http://www.eclipse.org/home/categories/images/wiki.gif alternatif metin http://www.eclipse.org/home/categories/images/wiki.gif

Ekstra seçenekler

Bu seçenekler doğrudan eclipse.iniyukarıda değildir, ancak gerekirse kullanışlı olabilir.


Windows7'de `user.home` sorunu

Tutulma başladığında, içinde bulunan bir dosya olan anahtar deposu dosyasını (şifrelerin tutulduğu yer) okuyacaktır user.home.
Herhangi bir nedenden dolayı user.homekendini tam bir yola doğru çözmezse, Eclipse başlamaz.
Başlangıçta bu SO sorusunda gündeme getirildi , eğer bunu yaşarsanız, anahtar deposu dosyasını açık bir yola yeniden tanımlamanız gerekir (başlangıçta çözmek için daha fazla user.home yok)

Ekle eclipse.ini:

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

Bu hata 300577 tarafından izlendi , bu diğer SO sorusunda çözüldü .


Hata ayıklama modu

Bekle, Eclipse içinde birden fazla ayar dosyası var. seçeneğinize
eklerseniz eclipse.ini:

-debug

, hata ayıklama modunu etkinleştirirseniz Eclipse başka bir ayar dosyası arar : .optionsbazı OSGI seçeneklerini belirtebileceğiniz bir dosya.
Dropins klasörü aracılığıyla yeni eklentiler eklediğinizde bu harika bir şey.
.Options dosyanıza bu blog yazısında " Dropins teşhisi " bölümünde açıklandığı gibi aşağıdaki ayarları ekleyin :

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

P2, dropins/klasörde hangi paketlerin bulunduğunu , hangi isteğin oluşturulduğunu ve yükleme planının ne olduğunu size bildirir . Belki de gerçekte ne olduğu ve neyin yanlış gittiğine dair ayrıntılı bir açıklama değildir, ancak nereden başlayacağınız hakkında güçlü bilgi vermelidir:

  • paketin planın içinde miydi?
  • Kurulum sorunu muydu (P2 hatası)
  • ya da belki de özelliğinizi dahil etmek uygun değildir?

Bu Hata 264924 - [reconciler] ' dan geliyor . Nihayetinde aşağıdaki sorunu çözen damla problemleri teşhisi yok :

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 eksik olan EMF'ye bağlı olduğundan bu sorunlu bir yapılandırmadır.
3.5M5 bu sorunun teşhisini sağlamaz.

Tutulmayı başlatın.
Belirgin bir sorun yok. Hata Günlüğünde hiçbir şey yok.

  • Help / About / PluginAyrıntılar gösterir org.eclipse.ocl.doc, ancak göstermez org.eclipse.ocl.
  • Help / About / Configurationayrıntılarda (tanılama) söz edilmez org.eclipse.ocl.
  • Help / Installation / Information Installed Softwarebahsetmiyorum org.eclipse.ocl.

Güzel hata işaretleri nerede?


Manifest Sınıf Yolu

Bu blog yayınına bakın :

  • Galileo'da (Eclipse 3.5 olarak da bilinir) JDT, projenin derleme yoluna eklenen kütüphanelerdeki manifest sınıfyolunu çözmeye başladı. Bu, kütüphanenin projenin derleme yoluna doğrudan mı, yoksa JDT tarafından sağlanan kullanıcı kütüphanesi veya bir üçüncü taraf tarafından uygulanan bir kütüphane aracı aracılığıyla mı ekleneceği konusunda çalıştı.
  • Helios'ta bu davranış, sınıfyolu kapsayıcılarını manifest sınıf yolu çözümlemesinden hariç tutmak için değiştirildi.

Bu, bazı projelerinizin artık Helios'ta derlenemeyeceği anlamına gelir.
Galileo davranışına geri dönmek istiyorsanız, şunu ekleyin:

-DresolveReferencedLibrariesForContainers=true

Bkz hata 305037 , hata 313.965 ve hata 313.890 referanslar için.


IPV4 yığını

Bu SO sorusu , eklenti güncelleme sitelerine erişilmediğinde olası bir düzeltmeden bahsediyor:

-Djava.net.preferIPv4Stack=true

Yapılandırmanızda yardımcı olması durumunda burada belirtilmiştir.


JVM1.7x64 potansiyel optimizasyonları

Bu makalede şöyle bildirilmektedir:

Kayıt için, 1.7 x64 JVM n Windows ile tezgah testim için şimdiye kadar bulduğum en hızlı seçenekler:

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

Ama hala üzerinde çalışıyorum ...


Bu bağlantıya göre, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , -XX: + CMSIncrementalMode'u kullanmak için -XX: + UseConcMarkSweepGC'ye sahip olmanız gerekir. Yukarıdaki örnekte eksik. G1 GC kullanmamız durumunda CMSIncrementalMode'a ihtiyacımız olmaz, değil mi?
RuntimeException

1
Hey, G1GC bir Mac'te bir felaket. Tüm makineyi yiyor ve yeniden başlatma gerektiriyor.
bmargulies

4
@VonC: benim için KORKUNÇ yavaşlamalara -XX:CompileThreshold=5neden oluyor . Sadece bu seçenek kurtulmak Eclipse başlangıç ​​zamanım> 1 dakikadan 17 saniye aşağı kesti! IDE'nin genel olarak ne kadar yavaş olduğunu belirtmiyoruz. Bu bağlantıya bakın
TrinitronX

3
@TrinitronX: (ve aslında herkes), -XX:CompileThreshold=5çok düşük bir değerdir (varsayılan = 10000). Bu değer, derlenmeden önce yöntem çağırma / dal sayısını temsil eder. Çok düşük bir değer CodeCache'inizin erken dolmasına neden olur ve Konsol rapor verebilir: CodeCache is full. Compiler has been disabled Derleyici devre dışı bırakıldığında uygulamada yavaşlık fark edeceksiniz. Bunu düzeltmenin iki yolu vardır: 1. Kullanın -XX:CompileThreshold=1000(bu numaraya ince ayar yapın) veya 2. Kod önbellek boyutunu -XX:ReservedCodeCacheSize=64m(varsayılan
32m'den

4
linux kullanımı için /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so jvm konumu için
r15habh

76

Eclipse Galileo 3.5 ve 3.5.1 ayarları

Şu anda (Kasım 2009), jdk6 güncelleme 17 ile aşağıdaki yapılandırma seçenekleri setini test ediyorum (Galileo - eclipse 3.5.x ile, Helios 3.6.x için 3.4 veya üstü için aşağıya bakın ):
(tabii ki göreli yolları uyarlayın) Bu eclipse.ini dosyasında kurulumunuz için doğru yollara sunun)

Not: eclipse3.5 için değiştirin startupve launcher.libraryçizgileri şu şekilde değiştirin :

-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

Daha fazla bilgi için yukarıdaki orijinal yanıtı da inceleyin .

Değişiklikler (Temmuz 2009'dan itibaren)

  • çerçeve değil fırlatıcıya atıfta bulunur
  • paylaşılan eklentiler: org.eclipse.equinox.p2.reconciler.dropins.directoryseçenek.
  • Galileo, çalışma alanı veya VM için tam olarak göreli yolları destekler (elbette JVM'niz ve çalışma alanınız aynı kalırsa, bir tutulma kurulumundan diğerine değiştirmek zorunda kalmayın)
    önce, bu göreli yollar tutulma kendini başlattığında mutlak olanlara yeniden yazılmaya devam etti ...
  • Bir Java JDK kurulumunun JRE dizinini de tutulma dizininize kopyalayabilirsiniz

Uyarılar

Aslında JDK ile ilgili yok sayılan kesme noktaları ile ilgili bir hata oluştu .
İçin JDK6u16 veya daha yeni kullanıyor musunuz fırlatma tutulması (Daha sonra derlemek isteyen birçok JDKs olarak tanımlayabiliriz içinde tutulma : bunun nedeni, JDK6 ile aynı JDK ile derlemeniz gereken bir tutulmayı başlatmanız değildir).

maksimum

Kullanımına dikkat edin:

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

Eclipse Wiki'de belgelendiği gibi ,

3.3 desteklere Başlatıcıya yeni argüman Eclipse: --launcher.XXMaxPermSize.
Kullanılan VM bir Sun VM ise ve zaten bir -XX:MaxPermSize=VM bağımsız değişkeni yoksa , başlatıcı otomatik -XX:MaxPermSize=256molarak kullanılan VM bağımsız değişkenleri listesine eklenir .
3.3 başlatıcısı yalnızca Windows'ta Sun VM'leri tanımlayabilir.

Bu girişte ayrıntılı olarak açıklandığı gibi :

Tüm vms -XX:MaxPermSize, bu şekilde iletildiği argümanı kabul etmez . Sun vms'in tanımlanmasında sorunlar olabilir (veya olmayabilir).
Not: Eclipse 3.3.1, başlatıcının bir Sun VM'yi algılayamadığı ve bu nedenle doğru PermGen boyutunu kullanmadığı bir hataya sahiptir . Bu , Mac OS X'te 3.3.0 için de bilinen bir hata olabilir .
Bu platform birleşimlerinden birini kullanıyorsanız, -XXbayrağı eclipse.iniyukarıda açıklanan şekilde ekleyin .

Notlar:

  • " 384m" satırı =384m, VM argümanının " " kısmına çevirir , eğer VM " m" üzerinde büyük / küçük harfe duyarlıysa , bu argüman da böyledir.
  • " --launcher." öneki, bağımsız değişkenin başlatıcı tarafından kullanıldığını ve uygulama bağımsız değişkenleriyle ad çakışmalarını önlemek için başlatıcıya özgü bağımsız değişkenlere eklendiğini belirtir. (Diğer örnekler --launcher.library, --launcher.suppressErrors)

-vmargs -XX:MaxPermSize=384mBölüm tamamen başlatıcısı atlayarak VM doğrudan geçirilen argüman, ve VM satıcı üzerinde hiçbir kontrolü kullanılır.


En son tutulma 3.5x64 sürümü için birkaç sorun yaşadım: --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 da m2eclipse eklentisi için bir jdk JAVA_HOME / bin / javaw kullanmak zorunda kaldım. Aksi takdirde bu deli harika.
Nathan Feger

Bu ikisi aynı şeyi yapmıyor mu? "--launcher.XXMaxPermSize 384m" ve "-XX: MaxPermSize = 128m"
Igor Zinov'yev

@Igor Zinov'yev: biraz gereksiz, ancak her ikisi de platforma ve tutulma sürümüne bağlı olarak yararlı olabilir. Onları aynı değere sıfırladım ve cevabımı bu ayarlarla ilgili biraz dokümantasyonla tamamladım.
VonC


Her zaman en yeni ve en büyük VM'yi kullanmak istiyorsanız, neden 1.6 kullanarak "-Dosgi.requiredJavaVersion = 1.5" argümanı kullanılmıyor?
Tony R

63

Eclipse Ganymede 3.4.2 ayarları


Daha yeni ayarlar için yukarıdaki Eclipse Galileo 3.5 ayarlarına bakın .


JDK

Her zaman en iyi JVM ayarı , bence , bulabileceğiniz en son JDK'yi içeriyor (şimdilik, b14 ve b15 hariç b16'ya kadar jdk1.6.0_b07'ye kadar b16 )

eclipse.ini

Bu oldukça düşük bellek ayarlarında bile, 2Go RAM ile eski (2002) masaüstümde büyük java projeleri (web sunucusu ile birlikte) çalıştırabilirim.

-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

Bkz GKelly en SO cevabı ve Piotr Gabryanczyk blog girişini yeni seçenekler hakkında daha fazla ayrıntı için.

İzleme

Ayrıca başlatmayı da düşünebilirsiniz:

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

Bellek tüketimi hakkında önceki bir soruda belirtildiği gibi .


1
ne -Xssv2m, ne zaman vm ayarları eclipse alışkanlık dahil, JVM ayarları için belgelere bir göz vardı ama bulamadı
Craig Angus

Doğru ... bu bir yazım hatasıydı: Xss2m değil, Xssv2m: -Xss yığının boyutunu belirler: -Xss1024k. Yığın alanı çok küçükse, sonunda java.lang.StackOverflowError (buralarda efsanevi bir hata mesajı ;-)) bir istisna sınıfı göreceksiniz
VonC

Sonunda ikinci ayar grubunu kullanmaya başladım ve ne kadar iyi çalıştıklarına şaşırdım!
Craig Angus

Ayarları bir süredir kullanma şansınız oldu, tutulma çabuk görünüyor, ancak karınca yapıları yapmak daha yavaş görünüyor ???
Craig Angus

@Craig Angus: garip, hangi tutulma sürümünü kullanıyorsunuz? Ve hangi karınca versiyonu buna dahil?
VonC

20

Eclipse Indigo 3.7.2 ayarları (64 bit linux)

Ayarları Güneş / Oracle java sürümü "1.6.0_31" ve Eclipse 3.7 Linux x86-64 üzerinde çalışan:

-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

Bunun yığın için yalnızca 200 MB ve yığın olmayan için 150 MB kullandığını unutmayın. Büyük eklentiler kullanıyorsanız, hem "-Xmx200m" hem de "-XX: MaxPermSize = 150m" sınırlarını artırmak isteyebilirsiniz.

Bu bayraklar için birincil optimizasyon hedefi , her durumda gecikmeyi en aza indirmek ve ikincil optimizasyon hedefi olarak bellek kullanımını en aza indirmek olmuştur.


Benim için fevkalade çalışıyor (bellekle ilgili ayarların değerlerini iki katına çıkarmış olsam da, hala düşük ve hızlı!)
Aktau

Hem -XX: + UseConcMarkSweepGC hem de -XX: + UseParNewGC öğelerine sahipsiniz. Neden? Her iki çöp toplayıcıyı da kullanabileceğinizi sanmıyorum ve sonunda hangisinin kullanıldığından emin değilim.
Herman

Ben -XX: + UseConcMarkSweepGC eski nesil çöp toplama için ve -XX: + UseParNewGC eden çöp toplama için kullanılır düşündüm.
Mikko Rantalainen


3
Her seçenek ve bir seçenekle ilgili her bağımsız değişken kendi satırında olmalıdır.
Josh Clemm

14

-showlocation

Tutulmanın iki kez çalışmasını kolaylaştırmak ve hangi çalışma alanını ele aldığınızı bilmek için

Eclipse 3.6, Workspace name (shown in window title)hangisinin -showlocationgösterileceğini üç nedenden daha iyi çalışacak şekilde belirtmek için bir tercih seçeneği ekler :

  1. Etkilenmesi için tutulmayı yeniden başlatmanız gerekmez.
  2. Kısa bir kod seçebilirsiniz.
  3. İlk olarak, perspektif ve uygulama adından önce görünür.

9

JDk6 Güncelleme 14 ile gidiyorsanız, performansa yardımcı gibi görünen G1 çöp toplayıcısını kullanmanızı öneririm.

Bunu yapmak için şu ayarları kaldırın:

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

ve bunları bunlarla değiştirin:

-XX: + DeneyselVM Seçeneklerini Aç
-XX: + UseG1GC


9

Linux + Sun JDK / JRE 32 bit kullanıyorsanız , "-vm" yi şu şekilde değiştirin:

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

Linux + Güneş JDK / JRE kullanıyorsanız 64bit , "-vm" değiştirin:

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

Ubuntu 8.10 ve 9.04'te benim için iyi çalışıyor


Eclipse varsayılan ortam olarak bir JDK kullanıyor mu?
Thorbjørn Ravn Andersen

Bu, Eclipse ürününün varsayılan ortam olarak belirli / farklı bir JDK kullanması için kullanılabilir.
Gilberto Olimpio

7

JRockit ile çalışmayı da deneyebilirsiniz . Sunucular için optimize edilmiş bir JVM'dir, ancak IDE'ler gibi uzun süredir çalışan birçok istemci uygulaması JRockit'te çok iyi çalışır. Tutulma bir istisna değildir. JRockit'in perma alanı yok, bu yüzden yapılandırmanıza gerek yok.

Kullanıcı arayüzünü durdurmada uzun gc duraklamalarını önlemek için bir duraklama süresi hedefi (ms) ayarlamak mümkündür.

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

Genellikle -Xmx ve -Xms ayarını zahmet etmem ve JRockit'in gerekli gördüğü gibi yığın büyümesine izin vermem. Eclipse uygulamanızı JRockit ile başlatırsanız, JRockit Mission Control araç paketini kullanarak uygulamanızdaki bellek sızıntılarını da izleyebilir, profil oluşturabilir ve bulabilirsiniz. Eklentileri bu güncelleme sitesinden indirebilirsiniz . Not, yalnızca Eclipse 3.3 ve Eclipse 3.4 için çalışır


Geçmişte JRockit üzerinde tutulma yaptım ve çok iyi koştum
Craig Angus

5

İşte i7 2630M 16GB RAM dizüstü bilgisayarda çalışan Eclipse'im için kendi ayarım, bu ayar tek bir çökme olmadan bir hafta boyunca kullanılıyor ve Eclipse 3.7 sorunsuz çalışıyor.

-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

Hesaplamalar: Win 7 x64 için

  • Xms = Fiziksel Bellek / 16
  • Xmx = Fiziksel Bellek / 4
  • MaxPermSize = 256m olan varsayılan değerle aynı

Wow 16G dizüstü bilgisayar? Merak ediyorum. Bu bir Sistem76 mı? : D
Phil

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

Ve bu ortam benim için bir cazibe gibi çalıştı. OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24 kullanıyorum


Teşekkürler, bu benim performansım biraz yardımcı oldu (benzer kurulum). Ancak maksimum yığın boyutunu 1024 MB'a çıkardım.
Jeff Evans

4

Kendi ayarlarım (Java 1.7, 1.6 için değiştir):

-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 çok fazla RAM sever. En az -Xmx512M kullanın. Varsa daha fazlası.



2

XX: + ParalelGC Kullanın en harika seçenek !!!


1

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

Hangi java sürümünü kullandığınızı belirtmek ve bir javaw işlemi başlatmak yerine dll'yi kullanmak


0

İşte kullandığım (ayarlar dosyası yerine kısayolda olmasına rağmen):

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.