eclipse - ग्रहण के लिए सबसे अच्छी जेवीएम सेटिंग्स क्या हैं?




jvm (11)

एक्लिप्स चलाने के लिए आपको मिली सर्वोत्तम जेवीएम सेटिंग्स क्या हैं?


ग्रहण Ganymede 3.4.2 सेटिंग्स

हाल की सेटिंग्स के लिए, उपरोक्त ग्रहण गैलीलियो 3.5 सेटिंग्स देखें।

JDK

मेरी राय में हमेशा सर्वोत्तम जेवीएम सेटिंग में नवीनतम जेडीके शामिल है जो आप पा सकते हैं (इसलिए अब के लिए, b14 और b15 को छोड़कर b16 तक jdk1.6.0_b07)

eclipse.ini

यहां तक ​​कि उन बहुत कम मेमोरी सेटिंग्स के साथ, मैं अपने पुराने (2002) डेस्कटॉप पर 2 जी रैम के साथ बड़ी जावा परियोजनाओं (वेब ​​सर्वर के साथ) चला सकता हूं।

-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 के SO उत्तर और Piotr Gabryanczyk की ब्लॉग प्रविष्टि देखें।

निगरानी

आप लॉन्च करने पर भी विचार कर सकते हैं:

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

जैसा कि स्मृति खपत के बारे में पिछले प्रश्न में कहा गया था


ग्रहण इंडिगो 3.7.2 सेटिंग्स (64 बिट लिनक्स)

सूर्य / ओरेकल जावा संस्करण "1.6.0_31" और ग्रहण 3.7 के लिए सेटिंग्स 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

ध्यान दें कि यह ढेर के लिए केवल 200 एमबी और गैर-ढेर के लिए 150 एमबी का उपयोग करता है। यदि आप विशाल प्लगइन का उपयोग कर रहे हैं, तो आप "-Xmx200m" और "-XX: MaxPermSize = 150m" दोनों सीमाओं को बढ़ा सकते हैं।

इन झंडे के लिए प्राथमिक अनुकूलन लक्ष्य सभी मामलों में विलंबता को कम करना है और माध्यमिक अनुकूलन लक्ष्य स्मृति उपयोग को कम करता है।


-showlocation

ग्रहण दो बार चलाना आसान बनाने के लिए, और जानें कि आप किस कार्यक्षेत्र से निपट रहे हैं

ग्रहण 3.6 Workspace name (shown in window title) लिए क्या दिखाना है, यह निर्दिष्ट करने के लिए प्राथमिकता विकल्प जोड़ता है जो तीन कारणों से -showlocation से बेहतर काम करता है:

  1. प्रभाव डालने के लिए आपको ग्रहण को पुनरारंभ करने की आवश्यकता नहीं है।
  2. आप एक छोटा कोड चुन सकते हैं।
  3. यह परिप्रेक्ष्य और आवेदन नाम से पहले, पहले दिखाई देता है।

-vm
सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.6.0_07 \ jre \ bin \ client \ jvm.dll

यह निर्दिष्ट करने के लिए कि आप किस जावा संस्करण का उपयोग कर रहे हैं, और एक जावा प्रक्रिया को लॉन्च करने के बजाय डीएलएल का उपयोग करें


आप JRockit साथ JRockit भी प्रयास कर सकते हैं। यह सर्वर के लिए अनुकूलित एक जेवीएम है, लेकिन कई लंबे समय तक चलने वाले क्लाइंट एप्लिकेशन, जैसे आईडीई, जेआरॉकिट पर बहुत अच्छी तरह से चलते हैं। ग्रहण कोई अपवाद नहीं है। JRockit में परम-स्पेस नहीं है इसलिए आपको इसे कॉन्फ़िगर करने की आवश्यकता नहीं है।

यूआई को रोकने वाले लंबे जीसी पॉज़ से बचने के लिए यह संभव है कि एक विराम समय लक्ष्य (एमएस) सेट करें।

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

मैं आमतौर पर सेटिंग -Xmx और -Xms को परेशान नहीं करता और जेआरॉकिट को ढेर बढ़ने देता हूं क्योंकि यह आवश्यक दिखता है। यदि आप अपने ग्रहण एप्लिकेशन को जेआरॉकिट के साथ लॉन्च करते हैं तो आप जेआरॉकिट मिशन कंट्रोल टूल्स सूट का उपयोग करके अपने एप्लिकेशन में मेमोरी लीक की निगरानी भी कर सकते हैं, प्रोफाइल कर सकते हैं और ढूंढ सकते हैं। आप इस अद्यतन साइट से प्लगइन्स डाउनलोड करते हैं। नोट, केवल ग्रहण 3.3 और ग्रहण 3.4 के लिए काम करता है


एक्सएक्स: + UseParallelGC जो कि अब तक का सबसे शानदार विकल्प है !!!


मेरी अपनी सेटिंग्स (जावा 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

यदि आप जेडीके 6 अपडेट 14 के साथ जा रहे हैं, तो मैं जी 1 कचरा कलेक्टर का उपयोग करके सुझाव देना चाहता हूं जो प्रदर्शन में मदद करता है।

ऐसा करने के लिए, इन सेटिंग्स को हटा दें:

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

और इनके साथ इन्हें बदलें:

-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC


यदि आप लिनक्स + सन जेडीके / जेआरई 32 बिट्स का उपयोग कर रहे हैं, तो "-vm" को यहां बदलें:

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

यदि आप लिनक्स + सन जेडीके / जेआरई 64 बिट्स का उपयोग कर रहे हैं, तो "-vm" को यहां बदलें:

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

यह उबंटू 8.10 और 9.04 पर मेरे लिए ठीक काम कर रहा है


यहां मैं जो उपयोग करता हूं (हालांकि मेरे पास सेटिंग्स फ़ाइल की बजाय शॉर्टकट में है):

eclipse.exe -showlocation -vm "सी: \ जावा \ jdk1.6.0_07 \ bin \ javaw.exe" -vmargs -Xms256M -Xmx768M -XX: + UseParallelGC -XX: MaxPermSize = 128M


-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

और इन सेटिंग ने मेरे लिए एक आकर्षण की तरह काम किया है। मैं ओएस एक्स 10.6 चला रहा हूं, ग्रहण 3.7 इंडिगो, जेडीके 1.6.0_24






jvm