Apa pengaturan JVM terbaik untuk Eclipse? [Tutup]

315

Apa pengaturan JVM terbaik yang Anda temukan untuk menjalankan Eclipse?

Craig Angus
sumber
8
Pengaturan baru dan lebih baik eclipse.iniuntuk Helios 3.6 ada di sini (di bawah, dalam jawaban baru): stackoverflow.com/questions/142357/…
VonC
6
Sungguh menakjubkan bahwa pertanyaan yang ditutup tidak konstruktif memiliki peringkat tinggi ...
bancer
1
Pertanyaan ini ditanyakan ketika jawaban terbaru untuk pertanyaan seperti ini di 2008 adalah eclipsezone.com/eclipse/forums/t20732.html . Rangkaian jawaban telah berkembang karena versi baru gerhana dan java telah dirilis, pembaruan selanjutnya membuat jawaban tetap segar. Menutup pertanyaan akan menghasilkan jawaban menjadi basi. Satu-satunya cara saya dapat memikirkan untuk mengulangi pertanyaan ini adalah membuatnya spesifik versi, yang menurut saya lebih buruk karena akan menyebabkan beberapa pertanyaan pada dasarnya menjawab masalah yang sama
Craig Angus
10
Setuju - pertanyaan penutup seperti ini adalah kegilaan - kegilaan yang saya katakan - pertanyaan seperti ini adalah yang paling berguna dan menarik di situs!
Luigi Plinge
3
Menurut alasan penutupan, "Kami mengharapkan jawaban untuk umumnya melibatkan fakta, referensi, atau keahlian khusus". Saya pikir menutup pertanyaan ini adalah peregangan. Mari kita berhati-hati menggunakan kekuatan sensor. Saya akan mengatakan bahwa jika ragu, lebih baik "membiarkan pengetahuan menjadi bebas" dan terbuka.
luiscolorado

Jawaban:

315

Ini adalah waktu tahun lagi: "eclipse.ini take 3" pengaturan menyerang kembali!

Pengaturan Eclipse Helios 3.6 dan 3.6.x

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

Setelah pengaturan untuk Eclipse Ganymede 3.4.x dan Eclipse Galileo 3.5.x , berikut adalah tampilan mendalam pada file pengaturan eclipse.ini "yang dioptimalkan" untuk Eclipse Helios 3.6.x:

  • berdasarkan opsi runtime ,
  • dan menggunakan Sun-Oracle JVM 1.6u21 b7 , dirilis 27 Juli (beberapa opsi kepemilikan Sun mungkin terlibat).

( dengan "dioptimalkan", maksud saya dapat menjalankan Eclipse penuh pada workstation jelek kami di tempat kerja, beberapa P4 lama dari tahun 2002 dengan 2Go RAM dan XPSp3. Tapi saya juga telah menguji pengaturan yang sama pada Windows7 )

Eclipse.ini

teks alternatif

PERINGATAN : untuk platform non-windows, gunakan opsi kepemilikan Sun -XX:MaxPermSizealih-alih opsi proprietary Eclipse --launcher.XXMaxPermSize.
Yaitu: Kecuali Anda menggunakan jdk6u21 build 7 terbaru . Lihat bagian Oracle di bawah ini.

-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

Catatan:
Beradaptasi dengan p2.reconciler.dropins.directorydirektori eksternal pilihan Anda.
Lihat jawaban SO ini . Idenya adalah untuk dapat menjatuhkan plugin baru di direktori secara independen dari instalasi Eclipse.

Bagian berikut merinci apa yang ada di eclipse.inifile ini .


Oracle JVM 1.6u21 (pre build 7) dan Eclipse yang ditakuti menabrak

Andrew Niefer mengingatkan saya akan situasi ini, dan menulis posting blog , tentang argumen vm non-standar ( -XX:MaxPermSize) dan dapat menyebabkan vms dari vendor lain tidak memulai sama sekali.
Tetapi versi gerhana opsi itu ( --launcher.XXMaxPermSize) tidak bekerja dengan JDK baru (6u21, kecuali jika Anda menggunakan 6u21 build 7, lihat di bawah).

Itu terakhirsolusinya ada di Eclipse Wiki , dan untuk Helios di Windows dengan 6u21 pre build 7 saja:

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

Itu dia. Tidak ada pengaturan untuk mengubah di sini (sekali lagi, hanya untuk Helios di Windows dengan 6u21 pre build 7 ).
Untuk platform non-Windows, Anda perlu kembali ke pilihan proprietary Sun -XX:MaxPermSize.

Masalahnya adalah berdasarkan satu regresi: Identifikasi JVM gagal karena Oracle rebranding di java.exe , dan memicu bug 319514 di Eclipse.
Andrew merawat Bug 320005 - [peluncur] --launcher.XXMaxPermSize: isSunVMharus mengembalikan true untuk Oracle , tetapi itu hanya akan untuk Helios 3.6.1.
Francis Upton , pengendara Eclipse lainnya, merenungkan semua situasi .

Pembaruan u21b7, 27 Juli :
Oracle telah merevisi perubahan untuk rilis Java 6 berikutnya dan tidak akan mengimplementasikannya lagi hingga JDK 7 .
Jika Anda menggunakan jdk6u21 build 7 , Anda dapat kembali ke --launcher.XXMaxPermSize(opsi gerhana) alih-alih -XX:MaxPermSize(opsi non-standar).
The auto-deteksi terjadi di C peluncur shimeclipse.exe masih akan mencari " Sun Microsystems" string, tapi dengan 6u21b7, itu sekarang akan bekerja - lagi.

Untuk saat ini, saya masih menyimpan -XX:MaxPermSizeversi (karena saya tidak tahu kapan semua orang akan meluncurkan gerhana JDK yang tepat ).


`-Startup` dan` --launcher.library` implisit

Berlawanan dengan pengaturan sebelumnya, jalur yang tepat untuk modul-modul tersebut tidak diatur lagi, yang nyaman karena dapat bervariasi antara rilis Eclipse 3.6.x yang berbeda:

  • startup: Jika tidak ditentukan, executable akan mencari di direktori plugins untuk org.eclipse.equinox.launcherbundle dengan versi tertinggi.
  • launcher.library: Jika tidak ditentukan, yang dapat dieksekusi mencari di pluginsdirektori untuk org.eclipse.equinox.launcher.[platform]fragmen yang sesuai dengan versi tertinggi dan menggunakan pustaka bersama yang dinamai eclipse_*di dalam.

Gunakan JDK6

JDK6 sekarang secara eksplisit diperlukan untuk meluncurkan Eclipse:

-Dosgi.requiredJavaVersion = 1.6

Pertanyaan SO ini melaporkan kejadian positif untuk pengembangan di Mac OS.


+ UnlockExperimentalVMOptions

Opsi berikut adalah bagian dari beberapa opsi eksperimental Sun JVM.

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

Mereka telah dilaporkan di posting blog ini untuk berpotensi mempercepat Eclipse.
Lihat semua opsi JVM di sini dan juga di halaman opsi Java Hotspot resmi .
Catatan: daftar terperinci dari laporan opsi yang UseFastAccessorMethodsmungkin aktif secara default.

Lihat juga "Perbarui JVM Anda" :

Sebagai pengingat, G1 adalah pengumpul sampah baru dalam persiapan untuk JDK 7, tetapi sudah digunakan dalam rilis versi 6 dari u17.


Membuka file di Eclipse dari baris perintah

Lihat posting blog dari Andrew Niefer yang melaporkan opsi baru ini:

--launcher.defaultAction
openFile

Ini memberi tahu peluncur bahwa jika dipanggil dengan baris perintah yang hanya berisi argumen yang tidak dimulai dengan " -", maka argumen tersebut harus diperlakukan seolah-olah mereka mengikuti " --launcher.openFile".

eclipse myFile.txt

Ini adalah jenis baris perintah yang akan diterima peluncur di windows ketika Anda mengklik dua kali file yang terkait dengan gerhana, atau Anda memilih file dan memilih " Open With" atau " Send To" Eclipse.

Jalur relatif akan diselesaikan pertama melawan direktori kerja saat ini, dan kedua terhadap direktori program gerhana.

Lihat bug 301033 untuk referensi. Awalnya bug 4922 (Oktober 2001, diperbaiki 9 tahun kemudian).


p2 dan Konfirmasi Dialog yang Tidak Ditandatangani

Jika Anda bosan dengan kotak dialog ini selama pemasangan banyak plugin Anda:

teks alternatif

, tambahkan eclipse.ini:

-Declipse.p2.unsignedPolicy=allow

Lihat posting blog ini dari Chris Aniszczy , dan laporan bug 235526 .

Saya ingin mengatakan bahwa riset keamanan mendukung fakta bahwa lebih sedikit konfirmasi lebih baik.
Orang mengabaikan hal-hal yang muncul dalam aliran sesuatu yang ingin mereka lakukan.

Untuk 3.6, kita tidak harus memunculkan peringatan di tengah arus - tidak peduli seberapa banyak kita menyederhanakan, orang akan mengabaikannya.
Sebaliknya, kita harus mengumpulkan semua masalah, jangan tidak menginstal mereka bundel dengan masalah, dan bukannya membawa kembali pengguna ke titik dalam alur kerja di mana mereka dapat fixup - add kepercayaan, kebijakan keamanan configure lebih longgar, dll ini disebut aman' pementasan ' .

---------- http://www.eclipse.org/home/categories/images/wiki.gif alt teks http://www.eclipse.org/home/categories/images/wiki.gif alt teks http://www.eclipse.org/home/categories/images/wiki.gif

Opsi tambahan

Opsi-opsi itu tidak secara langsung di eclipse.iniatas, tetapi dapat berguna jika diperlukan.


Masalah `user.home` pada Windows7

Ketika gerhana dimulai, ia akan membaca file keystore-nya (tempat kata sandi disimpan), sebuah file yang terletak di user.home.
Jika karena alasan tertentu itu user.hometidak menyelesaikan sendiri dengan benar ke jalur penuh, Eclipse tidak akan memulai.
Awalnya dimunculkan dalam pertanyaan SO ini , jika Anda mengalami ini, Anda perlu mendefinisikan kembali file keystore ke jalur eksplisit (tidak ada lagi pengguna. Rumah untuk menyelesaikan di awal)

Tambahkan di Anda eclipse.ini:

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

Ini telah dilacak oleh bug 300577 , telah diselesaikan dalam pertanyaan SO lainnya ini .


Mode debug

Tunggu, ada lebih dari satu file pengaturan di Eclipse.
jika Anda menambahkan ke eclipse.iniopsi Anda:

-debug

, Anda mengaktifkan mode debug dan Eclipse akan mencari file pengaturan lain : .optionsfile di mana Anda dapat menentukan beberapa opsi OSGI.
Dan itu hebat ketika Anda menambahkan plugin baru melalui folder dropins.
Tambahkan dalam file .options Anda pengaturan berikut, seperti yang dijelaskan dalam posting blog ini " Dropins diagnosis " :

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

P2 akan memberi tahu Anda bundel apa yang ditemukan di dropins/folder, permintaan apa yang dihasilkan, dan apa rencana pemasangan. Mungkin itu bukan penjelasan terperinci tentang apa yang sebenarnya terjadi, dan apa yang salah, tetapi itu harus memberi Anda informasi yang kuat tentang dari mana harus memulai:

  • Apakah bundel Anda dalam rencana?
  • Apakah itu masalah instalasi (kesalahan P2)
  • atau mungkin itu tidak optimal untuk memasukkan fitur Anda?

Itu berasal dari Bug 264924 - [rekonsiliator] Tidak ada diagnosis masalah dropins , yang akhirnya memecahkan masalah berikut seperti:

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

Ini adalah konfigurasi yang bermasalah karena OCL bergantung pada EMF yang hilang.
3.5M5 tidak memberikan diagnosis masalah ini.

Mulai gerhana.
Tidak ada masalah yang jelas. Tidak ada dalam Log Kesalahan.

  • Help / About / Plugindetail menunjukkan org.eclipse.ocl.doc, tetapi tidak org.eclipse.ocl.
  • Help / About / Configurationdetail tidak menyebutkan (diagnostik) org.eclipse.ocl.
  • Help / Installation / Information Installed Softwaretidak menyebutkan org.eclipse.ocl.

Di mana penanda kesalahan yang bagus?


Manifest Classpath

Lihat posting blog ini :

  • Di Galileo (alias Eclipse 3.5), JDT mulai menyelesaikan classpath manifes di perpustakaan yang ditambahkan ke path build proyek. Ini berfungsi baik perpustakaan ditambahkan ke jalur pembangunan proyek secara langsung atau melalui wadah classpath, seperti fasilitas perpustakaan pengguna yang disediakan oleh JDT atau yang diimplementasikan oleh pihak ketiga.
  • Dalam Helios, perilaku ini diubah untuk mengecualikan wadah classpath dari resolusi classpath nyata.

Itu berarti beberapa proyek Anda mungkin tidak lagi dikompilasi di Helios.
Jika Anda ingin kembali ke perilaku Galileo, tambahkan:

-DresolveReferencedLibrariesForContainers=true

Lihat bug 305037 , bug 313965 dan bug 313890 untuk referensi.


Tumpukan IPV4

Pertanyaan SO ini menyebutkan kemungkinan perbaikan ketika tidak mengakses situs pembaruan plugin:

-Djava.net.preferIPv4Stack=true

Disebutkan di sini kalau-kalau bisa membantu dalam konfigurasi Anda.


JVM1.7x64 potensi optimasi

Artikel ini melaporkan:

Sebagai catatan, opsi paling cepat yang saya temukan sejauh ini untuk tes bangku saya dengan JVM 1,7 x64 dan Windows adalah:

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

Tapi saya masih mengerjakannya ...

VONC
sumber
Sesuai tautan ini, oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#icms , Anda harus memiliki -XX: + UseConcMarkSweepGC untuk menggunakan -XX: + CMSIncrementalMode. Itu hilang dari contoh Anda di atas. Kita tidak perlu CMSIncrementalMode jika kita menggunakan G1 GC, apakah saya benar?
RuntimeException
1
Hei, G1GC adalah bencana di mac. Itu memakan seluruh mesin, membutuhkan reboot.
bmargulies
4
@VonC: -XX:CompileThreshold=5menyebabkan perlambatan HORRENDOUS untuk saya. Menyingkirkan opsi ini saja mengurangi waktu startup Eclipse saya menjadi 17 detik dari> 1 menit !! Belum lagi betapa lambatnya IDE pada umumnya. Lihat tautan ini
TrinitronX
3
@ TrititronX: (dan sebenarnya semua orang), -XX:CompileThreshold=5adalah nilai yang sangat rendah (default = 10000). Nilai ini mewakili jumlah pemanggilan metode / cabang sebelum mengkompilasinya. Nilai yang terlalu rendah akan menyebabkan CodeCache Anda terisi sebelum waktunya dan Konsol dapat melaporkan: CodeCache is full. Compiler has been disabled Setelah Kompiler dinonaktifkan, Anda akan melihat kelambatan dalam aplikasi. Ada dua cara untuk memperbaikinya, 1. Gunakan -XX:CompileThreshold=1000(sesuaikan angka ini) atau 2. Coba tingkatkan ukuran cache kode dengan menggunakan -XX:ReservedCodeCacheSize=64m(dobel dari 32m default)
Drupad Panchal
4
untuk linux gunakan /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so untuk lokasi jvm
r15habh
76

Pengaturan Eclipse Galileo 3.5 dan 3.5.1

Saat ini (November 2009), saya menguji dengan pembaruan jdk6 17 konfigurasi set pilihan berikut (dengan Galileo - eclipse 3.5.x, lihat di bawah untuk 3.4 atau lebih tinggi untuk Helios 3.6.x ):
(tentu saja, menyesuaikan jalur relatif hadir di eclipse.ini ini ke jalur yang benar untuk pengaturan Anda)

Catatan: untuk eclipse3.5 , ganti startupdan gariskanlauncher.library dengan:

-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

Lihat juga jawaban asli saya di atas untuk informasi lebih lanjut.

Perubahan (mulai Juli 2009)

  • mengacu pada peluncur dan bukan kerangka kerja
  • plugin bersama: org.eclipse.equinox.p2.reconciler.dropins.directory opsi.
  • Galileo mendukung sepenuhnya jalur relatif untuk ruang kerja atau VM (menghindari harus memodifikasi yang dari satu instalasi gerhana ke yang lain, jika, tentu saja, JVM dan ruang kerja Anda tetap sama)
    Sebelum, jalur relatif terus ditulis ulang menjadi yang absolut ketika gerhana diluncurkan sendiri ...
  • Anda juga dapat menyalin direktori JRE dari instalasi Java JDK di dalam direktori gerhana Anda

Peringatan

Ada bug dengan breakpoint yang diabaikan yang sebenarnya terkait dengan JDK.
Jangan gunakan JDK6u16 atau lebih baru untuk meluncurkan gerhana (Anda kemudian dapat menentukan sebanyak JDK yang ingin Anda kompilasi dalam gerhana: itu bukan karena Anda meluncurkan gerhana dengan JDK6 yang harus Anda kompilasi dengan JDK yang sama).

Maks

Perhatikan penggunaan:

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

Seperti yang didokumentasikan dalam Eclipse Wiki ,

Eclipse 3.3 mendukung argumen baru untuk peluncur: --launcher.XXMaxPermSize.
Jika VM yang digunakan adalah Sun VM dan belum ada -XX:MaxPermSize=argumen VM, maka peluncur akan secara otomatis menambah -XX:MaxPermSize=256mdaftar argumen VM yang digunakan.
Peluncur 3.3 hanya mampu mengidentifikasi Sun VM di Windows.

Seperti yang dijelaskan dalam entri ini :

Tidak semua vms menerima -XX:MaxPermSizeargumen yang menyebabkannya diteruskan dengan cara ini. Mungkin ada (atau mungkin tidak) masalah dengan mengidentifikasi sun vms.
Catatan: Eclipse 3.3.1 memiliki bug di mana peluncur tidak dapat mendeteksi Sun VM, dan karenanya tidak menggunakan ukuran PermGen yang benar. Tampaknya ini mungkin bug yang dikenal di Mac OS X untuk 3.3.0 juga.
Jika Anda menggunakan salah satu dari kombinasi platform ini, tambahkan -XXbendera ke eclipse.iniseperti yang dijelaskan di atas.

Catatan:

  • baris " 384m" diterjemahkan ke bagian " =384m" dari argumen VM, jika VM peka huruf pada " m", maka begitu pula argumen ini.
  • --launcher.awalan " ", ini menentukan bahwa argumen dikonsumsi oleh peluncur itu sendiri dan ditambahkan ke argumen spesifik peluncur untuk menghindari tabrakan nama dengan argumen aplikasi. (Contoh lainnya adalah --launcher.library, --launcher.suppressErrors)

The -vmargs -XX:MaxPermSize=384mbagian adalah argumen lulus langsung ke VM, melewati peluncur sepenuhnya dan tidak ada pemeriksaan pada vendor VM digunakan.

VONC
sumber
Saya punya beberapa masalah dengan ini untuk rilis eclipse 3.5x64 terbaru: --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 juga saya harus menggunakan jdk JAVA_HOME / bin / javaw, untuk plugin m2eclipse. Kalau tidak, ini gila luar biasa.
Nathan Feger
Bukankah keduanya melakukan hal yang sama? "--launcher.XXMaxPermSize 384m" dan "-XX: MaxPermSize = 128m"
Igor Zinov'yev
@Igor Zinov'yev: ini agak berlebihan, tetapi keduanya dapat berguna, tergantung pada platform dan versi gerhana. Saya meresetnya ke nilai yang sama, dan menyelesaikan jawaban saya dengan sedikit dokumentasi tentang pengaturan itu.
VonC
Jika Anda selalu ingin menggunakan VM terbaru dan terhebat maka mengapa tidak argumen "-Dosgi.requiredJavaVersion = 1.5" menggunakan 1.6?
Tony R
63

Pengaturan Eclipse Ganymede 3.4.2


Untuk pengaturan yang lebih baru, lihat pengaturan Eclipse Galileo 3.5 di atas .


JDK

Pengaturan JVM terbaik selalu , menurut saya, termasuk JDK terbaru yang dapat Anda temukan (jadi untuk saat ini, jdk1.6.0_b07 hingga b16, kecuali b14 dan b15 )

eclipse.ini

Bahkan dengan pengaturan memori yang cukup rendah, saya dapat menjalankan proyek java besar (bersama dengan server web) pada desktop lama saya (2002) dengan RAM 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

Lihat GKelly ini SO jawaban dan entri blog Piotr Gabryanczyk ini untuk rincian lebih lanjut tentang opsi baru.

Pemantauan

Anda juga dapat mempertimbangkan untuk meluncurkan:

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

Seperti yang dikatakan dalam pertanyaan sebelumnya tentang konsumsi memori .

VONC
sumber
1
untuk apa -Xssv2m, ketika saya memasukkannya ke dalam gim pengaturan vm tidak akan diluncurkan, melihat pada dokumen untuk pengaturan JVM tetapi tidak dapat menemukannya
Craig Angus
Benar ... itu salah ketik: Xss2m, bukan Xssv2m: -Xss menentukan ukuran tumpukan: -Xss1024k. Jika ruang stack terlalu kecil, pada akhirnya Anda akan melihat kelas pengecualian java.lang.StackOverflowError (pesan kesalahan mistis di sekitar sini ;-))
VonC
Akhirnya menggunakan set kedua pengaturan dan kagum pada seberapa baik mereka bekerja!
Craig Angus
Telah memiliki kesempatan untuk menggunakan pengaturan untuk sementara waktu sekarang, gerhana tampaknya tajam, tetapi melakukan pembangunan semut tampaknya lebih lambat ???
Craig Angus
@Craig Angus: aneh, versi gerhana apa yang Anda gunakan? Dan versi semut mana yang termasuk di dalamnya?
VonC
20

Pengaturan Eclipse Indigo 3.7.2 (64 bit linux)

Pengaturan untuk Sun / Oracle versi java "1.6.0_31" dan Eclipse 3.7 berjalan di Linux x86-64:

-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

Perhatikan bahwa ini hanya menggunakan 200 MB untuk heap dan 150 MB untuk non-heap. Jika Anda menggunakan plugin yang besar, Anda mungkin ingin meningkatkan batas "-Xmx200m" dan "-XX: MaxPermSize = 150m".

Target optimalisasi utama untuk flag-flag ini adalah untuk meminimalkan latensi dalam semua kasus dan sebagai target optimasi sekunder meminimalkan penggunaan memori.

Mikko Rantalainen
sumber
Bekerja secara fantastis untuk saya (meskipun saya menggandakan nilai untuk pengaturan yang terkait dengan memori, ini masih rendah dan sangat cepat!)
Aktau
Anda memiliki -XX: + UseConcMarkSweepGC dan -XX: + UseParNewGC. Mengapa? Saya tidak berpikir Anda bisa menggunakan kedua pengumpul sampah, dan saya tidak yakin yang mana akhirnya digunakan.
herman
Saya berpikir bahwa -XX: + UseConcMarkSweepGC untuk pengumpulan sampah generasi lama dan -XX: + UseParNewGC digunakan untuk pengumpulan sampah eden.
Mikko Rantalainen
3
Setiap opsi dan setiap argumen ke suatu opsi harus berada pada barisnya sendiri.
Josh Clemm
14

-lokasi

Untuk membuatnya lebih mudah menjalankan gerhana dua kali, dan ketahui ruang kerja yang Anda hadapi

Eclipse 3.6 menambahkan opsi preferensi untuk menentukan apa yang akan ditampilkan untuk Workspace name (shown in window title)yang berfungsi lebih baik daripada -showlocationkarena tiga alasan:

  1. Anda tidak perlu memulai ulang gerhana agar dampaknya terjadi.
  2. Anda dapat memilih kode pendek.
  3. Muncul lebih dulu, sebelum perspektif dan nama aplikasi.
Stephen Denne
sumber
9

Jika Anda menggunakan pembaruan jdk6 14, saya sarankan menggunakan pengumpul sampah G1 yang tampaknya membantu kinerja.

Untuk melakukannya, hapus pengaturan ini:

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

dan menggantinya dengan ini:

-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC

Ben W.
sumber
9

Jika Anda menggunakan Linux + Sun JDK / JRE 32bits , ubah "-vm" ke:

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

Jika Anda menggunakan Linux + Sun JDK / JRE 64bits , ubah "-vm" ke:

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

Itu bekerja dengan baik untuk saya di Ubuntu 8.10 dan 9.04

Gilberto Olimpio
sumber
Apakah ini agar Eclipse menggunakan JDK sebagai lingkungan default?
Thorbjørn Ravn Andersen
Ini dapat digunakan untuk memiliki Eclipse menggunakan JDK spesifik / berbeda sebagai lingkungan default.
Gilberto Olimpio
7

Anda juga dapat mencoba menjalankan dengan JRockit . Ini adalah JVM yang dioptimalkan untuk server, tetapi banyak aplikasi klien yang berjalan lama, seperti IDE, berjalan sangat baik di JRockit. Eclipse tidak terkecuali. JRockit tidak memiliki ruang perm sehingga Anda tidak perlu mengkonfigurasinya.

Mungkin menetapkan target waktu jeda (ms) untuk menghindari jeda gc yang lama menghentikan UI.

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

Saya biasanya tidak repot mengatur -Xmx dan -Xms dan membiarkan JRockit menumbuhkan tumpukan yang dianggap perlu. Jika Anda meluncurkan aplikasi Eclipse dengan JRockit, Anda juga dapat memantau, membuat profil, dan menemukan kebocoran memori di aplikasi Anda menggunakan rangkaian alat Kontrol Misi JRockit. Anda mengunduh plugin dari situs pembaruan ini . Catatan, hanya berfungsi untuk Eclipse 3.3 dan Eclipse 3.4

Kire Haglin
sumber
Saya harus berlari gerhana di JRockit di masa lalu dan berlari sangat baik
Craig Angus
5

Ini adalah pengaturan saya sendiri untuk Eclipse saya yang berjalan pada laptop RAM i7 2630M 16GB, pengaturan ini telah digunakan selama seminggu, tanpa satu tabrakan, dan Eclipse 3.7 berjalan dengan lancar.

-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

Perhitungan: Untuk Win 7 x64

  • Xms = Memori Fisik / 16
  • Xmx = Memori Fisik / 4
  • MaxPermSize = Sama dengan nilai default, yaitu 256m
Kurung keriting
sumber
Wow laptop 16G? Saya penasaran. Apakah itu System76? : 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

Dan pengaturan ini bekerja seperti pesona bagi saya. Saya menjalankan OS X10.6, Eclipse 3.7 Indigo, JDK1.6.0_24

A Null Pointer
sumber
Terima kasih, ini sedikit membantu kinerja saya (pengaturan serupa). Tapi saya menumpuk ukuran tumpukan maksimal hingga 1024MB.
Jeff Evans
4

Pengaturan saya sendiri (Java 1.7, modifikasi 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
Chris Dennett
sumber
3

Eclipse suka banyak RAM. Gunakan setidaknya -Xmx512M. Lebih banyak jika tersedia.

Ken
sumber
2

XX: + UseParallelGC itu adalah opsi paling luar biasa !!!


sumber
1

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

Untuk menentukan versi java mana yang Anda gunakan, dan gunakan dll alih-alih meluncurkan proses javaw

Stephen Denne
sumber
0

Inilah yang saya gunakan (meskipun saya memilikinya di jalan pintas alih-alih file pengaturan):

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

Dave L.
sumber