ग्रहण चलाने के लिए आपको सबसे अच्छी JVM सेटिंग क्या मिली?
ग्रहण चलाने के लिए आपको सबसे अच्छी JVM सेटिंग क्या मिली?
जवाबों:
यह फिर से वर्ष का समय है: "eclipse.ini 3 ले लो" सेटिंग्स वापस हड़ताल!
alt text http://www.eclipse.org/home/promotions/friends-helios/helios.png
के लिए सेटिंग्स के बाद ग्रहण गेनीमेड 3.4.x और ग्रहण गैलीलियो 3.5.x , यहाँ एक "अनुकूलित" पर एक गहन नज़र है eclipse.ini ग्रहण Helios 3.6.x के लिए सेटिंग्स फ़ाइल:
( "अनुकूलित" द्वारा, मेरा मतलब है कि काम पर हमारे भद्दे वर्कस्टेशन पर पूर्ण-ग्रहण ग्रहण करने में सक्षम है, 2002 से कुछ पुराने P4 2Go RAM और XPSp3 के साथ। लेकिन मैंने विंडोज 7 पर भी उन्हीं सेटिंग्स का परीक्षण किया है )
चेतावनी : गैर-विंडोज़ प्लेटफ़ॉर्म के लिए, सूर्य के मालिकाना विकल्प का -XX:MaxPermSize
उपयोग करें जो कि ग्रहण स्वामित्व विकल्प के बजाय है --launcher.XXMaxPermSize
।
अर्थात: जब तक आप नवीनतम jdk6u21 बिल्ड 7 का उपयोग नहीं कर रहे हैं । नीचे 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
।
इस SO उत्तर को देखें । यह विचार किसी भी ग्रहण की स्थापना से स्वतंत्र रूप से एक निर्देशिका में नए प्लगइन्स को छोड़ने में सक्षम है।
निम्न अनुभाग इस eclipse.ini
फ़ाइल में क्या हैं, इसका विस्तार करते हैं ।
एंड्रयू नीफर ने मुझे इस स्थिति के लिए सचेत किया, और एक गैर-मानक vm तर्क ( ) के बारे में एक ब्लॉग पोस्ट लिखा, और -XX:MaxPermSize
अन्य विक्रेताओं से vms को शुरू नहीं करने का कारण बन सकता है।
लेकिन उस विकल्प का ग्रहण संस्करण ( --launcher.XXMaxPermSize
) नए JDK (6u21) के साथ काम नहीं कर रहा है, जब तक कि आप 6u21 बिल्ड 7 का उपयोग नहीं कर रहे हैं, नीचे देखें)।
अंतिमसमाधान विकी विकी पर है , और हेलीओस के लिए विंडोज पर 6u21 प्री बिल्ड 7 केवल:
(Eclipse_home) /plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
बस। यहां ट्वीक करने की कोई सेटिंग नहीं (फिर से, केवल 6u21 प्री बिल्ड 7 के साथ विंडोज पर हेलियोस के लिए )।
गैर-विंडोज प्लेटफ़ॉर्म के लिए, आपको सूर्य के मालिकाना विकल्प पर वापस जाने की आवश्यकता है -XX:MaxPermSize
।
समस्या एक प्रतिगमन आधारित है: JVM पहचान java.exe में Oracle रीब्रांडिंग के कारण विफल हो जाती है , और ग्रहण पर बग 319514 को ट्रिगर किया ।
एंड्रयू ने बग 320005--launcher.XXMaxPermSize: isSunVM
का ख्याल रखा - [लांचर] ओरेकल के लिए सही लौटना चाहिए , लेकिन यह केवल हेलिओस 3.6.1 के लिए होगा।
फ्रांसिस अप्टन , एक और ग्रहण कमल , सभी स्थिति को दर्शाता है ।
अद्यतन u21b7, जुलाई, 27 वीं :
ओरेकल ने अगले जावा 6 रिलीज के लिए बदलाव को फिर से प्राप्त किया है और इसे जेकेके 7 तक फिर से लागू नहीं करेगा ।
यदि आप jdk6u21 बिल्ड 7 का उपयोग करते हैं , तो आप (गैर-मानक विकल्प) के --launcher.XXMaxPermSize
बजाय (ग्रहण विकल्प) पर वापस लौट सकते हैं -XX:MaxPermSize
। ऑटो का पता लगाने सी लांचर शिम में क्या हो रहा अभी भी "के लिए दिखेगा " स्ट्रिंग, लेकिन 6u21b7 साथ, यह अब काम करेगा - फिर से।eclipse.exe
Sun Microsystems
अभी के लिए, मैं अभी भी -XX:MaxPermSize
संस्करण रखता हूं (क्योंकि मुझे नहीं पता कि हर कोई कब सही JDK को लॉन्च करेगा )।
पिछली सेटिंग्स के विपरीत, उन मॉड्यूल के लिए सटीक मार्ग अब सेट नहीं है, जो सुविधाजनक है क्योंकि यह अलग-अलग ग्रहण 3.6.x रिलीज के बीच भिन्न हो सकता है:
org.eclipse.equinox.launcher
उच्चतम संस्करण के साथ बंडल के लिए प्लगइन्स निर्देशिका में दिखेगा ।plugins
उपयुक्त org.eclipse.equinox.launcher.[platform]
टुकड़े के लिए निर्देशिका में निष्पादन योग्य दिखता है और eclipse_*
अंदर से साझा पुस्तकालय का उपयोग करता है।JDK6 को अब स्पष्ट रूप से ग्रहण शुरू करने की आवश्यकता है:
-Dosgi.requiredJavaVersion = 1.6
यह एसओ प्रश्न मैक ओएस पर विकास के लिए एक सकारात्मक घटना की रिपोर्ट करता है।
निम्नलिखित विकल्प सूर्य JVM के कुछ प्रायोगिक विकल्पों का हिस्सा हैं।
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
उन्हें इस ब्लॉग पोस्ट में संभावित रूप से ग्रहण की गति बढ़ाने की सूचना दी गई है । यहां
सभी JVM विकल्प देखें और आधिकारिक जावा हॉटस्पॉट विकल्प पृष्ठ में भी ।
नोट: उन विकल्पों की विस्तृत सूची रिपोर्ट जो UseFastAccessorMethods
डिफ़ॉल्ट रूप से सक्रिय हो सकती हैं।
"अपना JVM अपडेट करें" भी देखें :
एक अनुस्मारक के रूप में, G1, JDK 7 की तैयारी में नया कचरा संग्रहकर्ता है, लेकिन पहले ही इसका उपयोग U17 के संस्करण 6 में किया गया था।
एंड्रयू Niefer से ब्लॉग पोस्ट देखें इस नए विकल्प की रिपोर्टिंग:
--launcher.defaultAction
openFile
यह लॉन्चर को बताता है कि अगर इसे एक कमांड लाइन के साथ कहा जाता है जिसमें केवल तर्क होते हैं जो "
-
" से शुरू नहीं होते हैं , तो उन तर्कों को मान लिया जाना चाहिए जैसे कि उन्होंने "--launcher.openFile
" का पालन किया ।
eclipse myFile.txt
यह उस तरह की कमांड लाइन है जिसे लॉन्चर को विंडोज़ पर प्राप्त होगा जब आप एक फाइल पर डबल क्लिक करते हैं जो कि ग्रहण से जुड़ी होती है, या आप फ़ाइलों का चयन करते हैं और "
Open With
" याSend To
"एक्लिप्स " चुनते हैं ।वर्तमान कार्य निर्देशिका के खिलाफ सापेक्ष पथ पहले हल किया जाएगा, और दूसरा ग्रहण कार्यक्रम निर्देशिका के खिलाफ।
संदर्भ के लिए बग 301033 देखें । मूल रूप से बग 4922 (अक्टूबर 2001, 9 साल बाद तय)।
यदि आप अपने कई प्लगइन्स की स्थापना के दौरान इस संवाद बॉक्स से थक चुके हैं:
, अपने में जोड़ें eclipse.ini
:
-Declipse.p2.unsignedPolicy=allow
क्रिस Aniszczy , और बग रिपोर्ट 235526 से इस ब्लॉग पोस्ट को देखें ।
मैं यह कहना चाहता हूं कि सुरक्षा अनुसंधान इस तथ्य का समर्थन करता है कि कम संकेत बेहतर हैं।
लोग उन चीजों को नजरअंदाज कर देते हैं जो किसी चीज के प्रवाह में पॉप अप हो जाती हैं जो वे करना चाहते हैं।3.6 के लिए, हमें प्रवाह के बीच में चेतावनी को पॉप-अप नहीं करना चाहिए - कोई फर्क नहीं पड़ता कि हम कितना सरल करते हैं, लोग बस उन्हें अनदेखा करेंगे।
इसके बजाय, हमें सभी समस्याओं को एकत्र करना चाहिए, उन बंडलों को समस्याओं के साथ स्थापित नहीं करना चाहिए , और इसके बजाय उपयोगकर्ता को वर्कफ़्लो में एक बिंदु पर वापस लाएं जहां वे फ़िक्सअप कर सकते हैं - विश्वास जोड़ें, सुरक्षा नीति को और अधिक शिथिल रूप से कॉन्फ़िगर करें, आदि इसे 'सुरक्षित' कहा जाता है । मंचन ' ।
---------- http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif
वे विकल्प सीधे eclipse.ini
ऊपर नहीं हैं , लेकिन जरूरत पड़ने पर काम में आ सकते हैं।
जब ग्रहण शुरू होता है, तो यह इसकी कीस्टोर फ़ाइल (जहाँ पासवर्ड रखे जाते हैं), एक फ़ाइल में स्थित पढ़ेगा user.home
।
यदि किसी कारण user.home
से जो पूर्ण-पथ के लिए अपने आप को ठीक से हल नहीं करता है, तो ग्रहण शुरू नहीं होगा।
प्रारंभ में इस SO प्रश्न में उठाया गया है , यदि आप इसे अनुभव करते हैं, तो आपको कीस्टोर फ़ाइल को एक स्पष्ट पथ पर फिर से परिभाषित करने की आवश्यकता है (प्रारंभ में हल करने के लिए और अधिक user.home नहीं)
अपने में जोड़ें eclipse.ini
:
-eclipse.keyring
C:\eclipse\keyring.txt
यह बग 300577 द्वारा ट्रैक किया गया है , यह इस अन्य एसओ प्रश्न में हल किया गया है ।
रुको, ग्रहण में एक से अधिक सेटिंग फ़ाइल है।
यदि आप अपने eclipse.ini
विकल्प में जोड़ें :
-debug
, आप डिबग मोड को सक्षम करते हैं और एक्लिप्स एक अन्य सेटिंग फ़ाइल की तलाश करेगा : एक .options
फ़ाइल जहां आप कुछ OSGI विकल्प निर्दिष्ट कर सकते हैं।
और यह बहुत अच्छा होता है जब आप ड्रॉपइंस फ़ोल्डर के माध्यम से नए प्लगइन्स जोड़ रहे होते हैं।
अपने .options में जोड़ें निम्नलिखित सेटिंग्स फ़ाइल करें, जैसा कि इस ब्लॉग पोस्ट " ड्रॉपिन्स डायग्नोसिस " में वर्णित है :
org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true
P2 आपको सूचित करेगा कि
dropins/
फ़ोल्डर में क्या बंडल पाए गए थे , क्या अनुरोध उत्पन्न हुआ था, और स्थापना की योजना क्या है। शायद यह विस्तृत विवरण नहीं है कि वास्तव में क्या हुआ था, और क्या गलत हुआ था, लेकिन यह आपको मजबूत जानकारी देनी चाहिए कि कहां से शुरू करें:
- क्या योजना में आपका बंडल था?
- क्या यह स्थापना की समस्या थी (P2 दोष)
- या शायद यह सिर्फ अपनी सुविधा को शामिल करने के लिए इष्टतम नहीं है?
यह बग 264924 से आता है - [टोह लेने वाला] बूंदों की समस्याओं का कोई निदान नहीं , जो अंत में निम्नलिखित मुद्दे को हल करता है जैसे:
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 EMF पर निर्भर करता है जो गायब है।
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
।अच्छा त्रुटि मार्कर कहां हैं?
इस ब्लॉग पोस्ट को देखें :
- गैलीलियो (उर्फ एक्लिप्स 3.5) में, JDT ने प्रोजेक्ट के बिल्ड पाथ में जोड़े गए लाइब्रेरी में मैनिफ़ेस्ट क्लासपाथ को हल करना शुरू किया। यह काम करता है कि क्या लाइब्रेरी को सीधे प्रोजेक्ट के निर्माण पथ में जोड़ा गया था या क्लासपाथ कंटेनर के माध्यम से, जैसे कि जेडीटी द्वारा प्रदान की गई उपयोगकर्ता लाइब्रेरी सुविधा या किसी तीसरे पक्ष द्वारा कार्यान्वित किया गया।
- हेलिओस में, क्लासपैथ के कंटेनरों को प्रकट करने के लिए इस व्यवहार को बदल दिया गया था।
इसका मतलब है कि आपकी कुछ परियोजनाएं अब हेलिओस में संकलित नहीं हो सकती हैं।
यदि आप गैलीलियो व्यवहार में वापस आना चाहते हैं, तो जोड़ें:
-DresolveReferencedLibrariesForContainers=true
संदर्भ के लिए बग 305037 , बग 313965 और बग 313890 देखें ।
यह SO प्रश्न संभावित अद्यतन का उल्लेख करता है जब प्लग-इन अपडेट साइटों तक पहुंच नहीं होती है:
-Djava.net.preferIPv4Stack=true
केवल आपके कॉन्फ़िगरेशन में मदद करने के मामले में यहाँ उल्लेख किया गया है।
यह लेख रिपोर्ट:
रिकॉर्ड के लिए, 1.7 x64 JVM n विंडोज के साथ अपने बेंच टेस्ट के लिए मुझे अब तक मिले सबसे तेज विकल्प हैं:
-Xincgc
-XX:-DontCompileHugeMethods
-XX:MaxInlineSize=1024
-XX:FreqInlineSize=1024
लेकिन मैं अभी भी इस पर काम कर रहा हूं ...
-XX:CompileThreshold=5
कारण बनता है। इस विकल्प से छुटकारा पाने के लिए> 1 मिनट से मेरे ग्रहण स्टार्टअप के समय को घटाकर 17 सेकंड कर दिया गया !! यह उल्लेख करने के लिए नहीं कि आईडीई सामान्य रूप से कितना धीमा था। इस लिंक को देखें
-XX:CompileThreshold=5
बहुत कम मूल्य (डिफ़ॉल्ट = 10000) है। यह मान संकलित करने से पहले विधि इनवोकेशन / शाखाओं की संख्या का प्रतिनिधित्व करता है। बहुत कम मान आपके CodeCache को समय से पहले भरने का कारण बनेगा और कंसोल रिपोर्ट कर सकता है: CodeCache is full. Compiler has been disabled
कंपाइलर के निष्क्रिय हो जाने के बाद आप ऐप में धीमेपन को नोटिस करेंगे। इसे ठीक करने के दो तरीके हैं, 1. उपयोग -XX:CompileThreshold=1000
(इस नंबर को ठीक करें ) या 2. कोड कैश साइज़ को बढ़ाने की कोशिश करें -XX:ReservedCodeCacheSize=64m
(डिफ़ॉल्ट 32 मी से दोगुना)
- (ग्रहण 3.5.x, देखने के गैलीलियो के साथ वर्तमान में (नवंबर 2009), मैं विकल्पों में से निम्न कॉन्फ़िगरेशन सेट jdk6 अद्यतन 17 के साथ परीक्षण कर रहा हूँ 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
-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 या अधिक हाल ही में उपयोग करें (आप तब ग्रहण कर सकते हैं जितने JDK आप ग्रहण के भीतर संकलित करना चाहते हैं : ऐसा इसलिए नहीं है क्योंकि आप JDK6 के साथ एक ग्रहण लॉन्च करते हैं, आपको उसी JDK के साथ संकलन करना होगा)।
के उपयोग पर ध्यान दें:
--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
जैसा कि ग्रहण विकी में प्रलेखित है ,
ग्रहण 3.3 लांचर को एक नए तर्क का समर्थन करता है
--launcher.XXMaxPermSize
:।
यदि VM का उपयोग किया जा रहा है, एक Sun VM है और पहले से ही-XX:MaxPermSize=
VM तर्क नहीं है, तो लांचर स्वचालित रूप-XX:MaxPermSize=256m
से उपयोग किए जा रहे VM तर्कों की सूची में जोड़ देगा ।
3.3 लांचर केवल विंडोज पर Sun VMs की पहचान करने में सक्षम है।
जैसा कि इस प्रविष्टि में विस्तृत है :
सभी vms इस
-XX:MaxPermSize
तर्क को स्वीकार नहीं करते कि ऐसा क्यों है। सूरज vms की पहचान करने में समस्याएँ हो सकती हैं (या नहीं भी)।
नोट: ग्रहण 3.3.1 में एक बग है जहां लांचर सूर्य वीएम का पता नहीं लगा सकता है, और इसलिए सही PermGen आकार का उपयोग नहीं करता है। ऐसा लगता है कि यह 3.3.0 के लिए मैक ओएस एक्स पर एक ज्ञात बग हो सकता है ।
यदि आप इनमें से किसी भी प्लेटफ़ॉर्म संयोजन का उपयोग कर रहे हैं, तो-XX
ध्वज कोeclipse.ini
ऊपर वर्णित अनुसार जोड़ें।टिप्पणियाँ:
- "
384m
" लाइन=384m
VM तर्क के " " भाग में बदल जाती है, यदि VM "m
" पर संवेदनशील है , तो यह तर्क है।- "
--launcher.
" उपसर्ग, यह निर्दिष्ट करता है कि तर्क को लांचर द्वारा ही उपभोग किया जाता है और अनुप्रयोग तर्कों के साथ नाम टकराव से बचने के लिए लांचर विशिष्ट तर्कों में जोड़ा गया था। (अन्य उदाहरण हैं--launcher.library
,--launcher.suppressErrors
)
-vmargs -XX:MaxPermSize=384m
भाग तर्क वी एम को सीधे पारित कर दिया, लांचर पूरी तरह से दरकिनार और वीएम विक्रेता पर कोई चेक किया जाता है।
अधिक हाल की सेटिंग्स के लिए, ऊपर गैलिलियो 3.5 सेटिंग्स देखें ।
मेरी राय में, हमेशा सबसे अच्छी JVM सेटिंग , जिसमें आप पा सकते हैं नवीनतम JDK शामिल हैं (इसलिए अभी तक, jdk1.6.0_b07 b16 तक, b14 और b15 को छोड़कर )
यहां तक कि उन कम मेमोरी सेटिंग्स के साथ, मैं अपने पुराने (2002) डेस्कटॉप पर JIO 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 की तो जवाब और पिओट्र Gabryanczyk के ब्लॉग प्रविष्टि नए विकल्पों के बारे में अधिक जानकारी के लिए।
आप लॉन्चिंग पर भी विचार कर सकते हैं:
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
जैसा कि स्मृति उपभोग के बारे में पिछले प्रश्न में कहा गया था ।
सूर्य / ओरेकल जावा संस्करण "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
तीन कारणों से बेहतर काम :
यदि आप jdk6 अपडेट 14 के साथ जा रहे हैं, तो मैं सुझाव दूंगा कि G1 कचरा संग्राहक का उपयोग किया जाए जो प्रदर्शन में मदद करता है।
ऐसा करने के लिए, इन सेटिंग्स को हटा दें:
-XX: + UseConcMarkSweepGC
-XX: + CMSIncrementalMode
-XX: + CMSIncrementalPacing
और उन्हें इनसे प्रतिस्थापित करें:
-XX: + UnlockExperimentalVMOptions
-XX: + UseG1GC
आप लिनक्स + सूर्य JDK / JRE उपयोग कर रहे हैं 32bits , बदलने के लिए "-vm":
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
आप लिनक्स + सूर्य JDK / JRE उपयोग कर रहे हैं 64bits , बदलने के लिए "-vm":
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
यह मेरे लिए Ubuntu 8.10 और 9.04 पर ठीक काम कर रहा है
आप JRockit के साथ दौड़ने का भी प्रयास कर सकते हैं । यह JVM सर्वरों के लिए अनुकूलित है, लेकिन कई लंबे समय से चलने वाले क्लाइंट एप्लिकेशन, जैसे IDE's, JRockit पर बहुत अच्छी तरह से चलते हैं। ग्रहण कोई अपवाद नहीं है। JRockit के पास परमिट-स्पेस नहीं है इसलिए आपको इसे कॉन्फ़िगर करने की आवश्यकता नहीं है।
यह संभव है कि यूआई को रोकते हुए लंबी gc पॉज़ से बचने के लिए एक पॉज़ टाइम टारगेट (ms) सेट किया जाए।
-showsplash
org.eclipse.platform
-vm
C:\jrmc-3.1.2-1.6.0\bin\javaw.exe
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20
मैं आमतौर पर सेटिंग -Xmx और -Xms को परेशान नहीं करता और JRockit को ढेर को बढ़ने देता हूं क्योंकि यह आवश्यक है। यदि आप JRockit के साथ अपना ग्रहण एप्लिकेशन लॉन्च करते हैं, तो आप JRockit मिशन नियंत्रण उपकरण सूट का उपयोग करके अपने एप्लिकेशन में मॉनिटरिंग, प्रोफ़ाइल और मेमोरी लीक का पता लगा सकते हैं। आप इस अपडेट साइट से प्लगइन्स डाउनलोड करें । ध्यान दें, केवल ग्रहण 3.3 और ग्रहण 3.4 के लिए काम करता है
यहाँ i7 2630M 16GB रैम लैपटॉप पर चलने वाले मेरे ग्रहण के लिए मेरी अपनी सेटिंग है, यह सेटिंग एक सप्ताह के लिए उपयोग की जा रही है, एक भी दुर्घटनाग्रस्त हुए बिना, और ग्रहण 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
गणना: विन 7 x64 के लिए
-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, ग्रहण 3.7 इंडिगो, JDK1.6.0_24 चला रहा हूं
मेरी अपनी सेटिंग्स (जावा 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
यदि आप मुझे पसंद करते हैं और 1.6 के वर्तमान ओरेकल रिलीज के साथ समस्या थी, तो आप अपने जेडीके या सेट को अपडेट करना चाह सकते हैं
-XX: MaxPermSize। अधिक जानकारी यहाँ उपलब्ध है: http://java.dzone.com/articles/latest-java-update-fixes
XX: + UseParallelGC कि यह अब तक का सबसे भयानक विकल्प है !!!
-vm
C: \ Program Files \ Java \ jdk1.6.0_07 \ jre \ bin \ client \ jmm.ll
यह निर्दिष्ट करने के लिए कि आप किस जावा संस्करण का उपयोग कर रहे हैं, और जावा प्रक्रिया शुरू करने के बजाय डीएलई का उपयोग करें
eclipse.ini
हेलिओस 3.6 के लिए नई और बेहतर सेटिंग्स यहाँ हैं (नीचे, एक नए उत्तर में): stackoverflow.com/questions/142357/…