सिद्धांत रूप में, हाँ, यह कर सकता है। लेकिन यह अभ्यास करता है, यह कभी नहीं करना चाहिए।
अधिकांश जावा वर्चुअल मशीनों में, अनुप्रयोग थ्रेड चलने वाले एकमात्र थ्रेड नहीं होते हैं। आवेदन धागे के अलावा, संकलन धागे, फाइनलाइज़र धागे, कचरा संग्रह धागे, और कुछ और हैं। मशीन पर चल रहे अन्य प्रोग्राम्स से सीपीयू कोर आवंटित करने के लिए निर्णय लेने और मशीनों पर चल रहे अन्य कार्यक्रमों के अन्य धागे कई मानकों (थ्रेड प्राथमिकताओं, उनके अंतिम निष्पादन समय इत्यादि) पर आधारित होते हैं, जो सभी धागे के लिए उचित प्रयास करते हैं। तो, व्यावहारिक रूप से सिस्टम में कोई थ्रेड सीपीयू आवंटन के लिए एक अनुचित लंबे समय के लिए इंतजार कर रहा है और ऑपरेटिंग सिस्टम को किसी भी थ्रेड को असीमित समय के लिए अवरुद्ध नहीं करना चाहिए।
कचरा संग्रह धागे (और अन्य वीएम धागे) को कम से कम गतिविधि की आवश्यकता है। एक कचरा संग्रह की आवश्यकता है या नहीं, यह देखने के लिए उन्हें समय-समय पर जांच करने की आवश्यकता है। यहां तक कि यदि आवेदन धागे सभी निलंबित कर दिए गए हैं, तो अन्य वीएम धागे भी हो सकते हैं, जैसे कि जेआईटी कंपाइलर थ्रेड या फाइनेंजर थ्रेड, जो काम करते हैं और इसलिए, ऑब्जेक्ट आवंटित करते हैं और कचरा संग्रह ट्रिगर करते हैं।यह मेटा-सर्कुलर जेवीएम के लिए विशेष रूप से सच है जो जावा में वीएम थ्रेड को लागू करता है और सी/सी ++ में नहीं;
इसके अलावा, अधिकांश आधुनिक जेवीएम एक पीढ़ी के कचरा कलेक्टर (एक कचरा कलेक्टर का उपयोग करते हैं जो ढेर के अलग-अलग हिस्सों में विभिन्न आयुओं के साथ वस्तुओं को रखता है) इसका मतलब है कि वस्तुएं पुराने और बूढ़े हो जाती हैं, उन्हें अन्य पुरानी जगहों पर ले जाया जा सकता है। इसलिए, यदि वस्तुओं को इकट्ठा करने की कोई आवश्यकता नहीं है, तो एक पीढ़ी का कचरा कलेक्टर वस्तुओं को एक स्थान से दूसरे स्थान पर ले जा सकता है।
बेशक प्रत्येक कचरा कलेक्टर का विवरण जेवीएम से जेवीएम में अलग है। चोट पर अधिक नमक डालने के लिए, कुछ जेवीएम एक से अधिक प्रकार के कचरा कलेक्टर का समर्थन करते हैं। लेकिन एक निष्क्रिय आवेदन में न्यूनतम कचरा संग्रहण गतिविधि को देखते हुए कोई आश्चर्य नहीं है।
स्रोत
2013-04-19 15:59:28
_ "सिस्टम क्रॉल में धीमा हो जाता है और लगभग फ्रीज हो जाता है" _ क्या स्मृति मेमोरी है? – phil
हाँ मुझे पता है कि यह इस तरह लगता है, लेकिन हम समय के साथ उपलब्ध स्मृति की मात्रा को कम कर देंगे, जो हम नहीं करते हैं। निश्चित रूप से एक अच्छा विचार हालांकि। –
मैंने कुछ ऐसा देखा है जैसा कि आप पहले वर्णन करते हैं क्योंकि वक्तव्य वस्तुओं को कभी बंद नहीं किया गया था, और थोड़ी देर के बाद, ढेर भर गया। VisualVM का उपयोग करें या जो भी टूल आप यह जांचना चाहते हैं कि अधिकांश मेमोरी का क्या उपयोग करता है और देखें कि यह बढ़ता रहता है या नहीं। – phil