जावा 8 के लिए डिफ़ॉल्ट कचरा संग्रहकर्ता क्या है?
जब मैं जेएमएक्स बीन्स की जांच करता हूं, तो वे इसे नई पीढ़ी के समानांतर कलेक्टर और पुरानी पीढ़ी के लिए पुराने सीरियल कलेक्टर के रूप में प्रकट करते हैं।
जावा 8 के लिए डिफ़ॉल्ट कचरा संग्रहकर्ता क्या है?
जब मैं जेएमएक्स बीन्स की जांच करता हूं, तो वे इसे नई पीढ़ी के समानांतर कलेक्टर और पुरानी पीढ़ी के लिए पुराने सीरियल कलेक्टर के रूप में प्रकट करते हैं।
जवाबों:
डिफ़ॉल्ट कचरा कलेक्टर (अन्य चीजों के बीच) का चयन करना जिसे जेवीएम की एर्गोनॉमिक्स प्रक्रिया कहा जाता है । यह प्रक्रिया आपकी मशीन के वर्ग पर निर्भर करती है।
चूंकि व्यावहारिक रूप से सभी मशीनों में 2 या अधिक सीपीयू होते हैं, एक मशीन को व्यावहारिक रूप से हमेशा जेवीएम द्वारा सर्वर-क्लास माना जाता है। इसीलिए आपको समांतर कलेक्टर को डिफॉल्ट कचरा संग्राहक मानने वाले कई संदर्भ मिलेंगे।
जावा में चार प्रकार के कचरा संग्राहक हैं (संस्करण 10 तक), लेकिन जावा 11 के स्थिर रिलीज के बाद, यह 5 प्रकार का होगा। य़े हैं:-
S GC
P GC
CMS GC
G1 GC
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