जावा 8 के लिए डिफ़ॉल्ट कचरा कलेक्टर


94

जावा 8 के लिए डिफ़ॉल्ट कचरा संग्रहकर्ता क्या है?

जब मैं जेएमएक्स बीन्स की जांच करता हूं, तो वे इसे नई पीढ़ी के समानांतर कलेक्टर और पुरानी पीढ़ी के लिए पुराने सीरियल कलेक्टर के रूप में प्रकट करते हैं।

जवाबों:


130

डिफ़ॉल्ट कचरा संग्राहक:

  • जावा 7 - समानांतर जीसी
  • जावा 8 - समानांतर जीसी
  • जावा 9 - जी 1 जीसी
  • जावा 10 - जी 1 जीसी

कृपया सूचना के स्रोत से लिंक करें।
एडुआर्ड विर्च

80

डिफ़ॉल्ट कचरा कलेक्टर (अन्य चीजों के बीच) का चयन करना जिसे जेवीएम की एर्गोनॉमिक्स प्रक्रिया कहा जाता है । यह प्रक्रिया आपकी मशीन के वर्ग पर निर्भर करती है।

  • सर्वर-क्लास मशीन के लिए, 2 या अधिक भौतिक प्रोसेसर और 2 या अधिक GB भौतिक मेमोरी (प्लेटफ़ॉर्म की परवाह किए बिना) के रूप में परिभाषित की गई, डिफ़ॉल्ट कचरा संग्राहक समानांतर कलेक्टर (थ्रूपुट कलेक्टर के रूप में भी जाना जाता है) है।
  • क्लाइंट-क्लास मशीन के लिए, विंडोज या एक-प्रोसेसर मशीन पर 32-बिट प्लेटफॉर्म के रूप में परिभाषित किया गया है, डिफ़ॉल्ट कचरा कलेक्टर सीरियल कलेक्टर है।

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


55

जावा में चार प्रकार के कचरा संग्राहक हैं (संस्करण 10 तक), लेकिन जावा 11 के स्थिर रिलीज के बाद, यह 5 प्रकार का होगा। य़े हैं:-

  1. सीरियल गारबेज कलेक्टर- S GC
  2. समानांतर कचरा संग्राहक- P GC
  3. सीएमएस कचरा कलेक्टर- CMS GC
  4. G1 कचरा संग्राहक- G1 GC
  5. Z कचरा कलेक्टर- ZGC

जावा में जीसी के डिफ़ॉल्ट कार्यान्वयन -

जेवीएम जीसी

 Java 7 - P GC       
 Java 8 - P GC
 Java 9 - G1 GC
 Java 10- G1 GC
 Java 11- Z GC(I am not sure but it would be default GC of java 11)

ZGC के लिए अधिक जानकारी, कृपया देखें

http://openjdk.java.net/projects/zgc/

https://www.opsian.com/blog/javas-new-zgc-is-very-exciting/

नोट: यदि आप सत्यापित करना चाहते हैं कि वर्तमान में JVM द्वारा किस GC का उपयोग किया जा रहा है, तो आप डिफ़ॉल्ट GC को दिखाने के लिए निम्न आदेश का पालन कर सकते हैं: -

$ java -XX:+PrintCommandLineFlags -version 

यदि आप अपनी आवश्यकता के अनुसार GC सेट करना चाहते हैं, तो आप कमांड का पालन करके ऐसा कर सकते हैं। यहां मैं G1 GC को डिफ़ॉल्ट GC के रूप में सेट करने जा रहा हूं।

$ java -XX:+UseG1GC -XX:+PrintCommandLineFlags -version 

यहां छवि विवरण दर्ज करें

For more details , please visit 

https://javapapers.com/java/types-of-java-garbage-collectors/

https://alvinalexander.com/java/java-jvm-how-show-which-garbage-collector-running


आगे के विवरण के लिए आरेख के स्रोत का उल्लेख करना उपयोगी होगा
xagaffar

2
hi @xagaffar यहाँ स्रोत url javapapers.com/java/types-of-java-garbage-collectors
Brajesh

3
@ बृजेश मुझे नहीं लगता कि जेडीसी जेडीके 11 की डिफ़ॉल्ट जीसी है। ओपन जेडडीके विकी ( wiki.openjdk.java.net/display/zgc/Main ) बताता है कि "-एक्सएक्स का उपयोग करें:" UnlockExperimentalVMOptions -XX: + UseZGC विकल्प सक्षम करने के लिए ZGC। " इसका मतलब है कि यह डिफ़ॉल्ट नहीं है।
आशीष कुमार

1
नहीं, यह JDK11 का डिफ़ॉल्ट नहीं है। -XX: + UnlockExperimentalVMOptions -XX: + UseZGC ZGC अनलॉक करने के लिए ZGC सक्षम करने के लिए विकल्प
vsingh

1
चित्र के प्रवाह आरेख "धारावाहिक", "समानांतर" और "समवर्ती" कचरा संग्राहकों के बीच के अंतर को समझाने के लिए वास्तव में उपयोगी हैं, लेकिन यह G1 कलेक्टर के लिए इन नौ रंगीन वर्गों के साथ वास्तव में निरर्थक है। उनका क्या मतलब है? धागे वर्ग बन जाते हैं?
होल्गर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.