2011-10-26 18 views
13

द्वारा उपयोग की जाने वाली कुल मेमोरी मैंने स्प्रिंग बैच का उपयोग करके एक एप्लीकेशन लिखा था। मैं VisualVM के साथ देख सकता हूं कि ढेर का आकार लगभग 22 एमबी है। लेकिन, जब मैं प्रोसेस एक्सप्लोरर (विंडोज़ पर) का उपयोग करता हूं यह देखने के लिए कि इसमें कितनी मेमोरी का उपयोग किया जाता है, तो अंतर बड़ा होता है (निजी बाइट्स - 71560 के और वर्किंग सेट - 80388 के)। इसे कैसे समझाओ? इस स्मृति का उपयोग करने वाली अन्य चीजें क्या हैं?जावा प्रक्रिया और ढेर आकार

धन्यवाद

उत्तर

2

मूल स्थान (ढेर) को न भूलें! ढेर केवल वस्तुओं का प्रतिनिधित्व करता है, धागे/primitives अतिरिक्त स्मृति लेते हैं। एएफएआईके, एक बार जब प्रक्रिया मेमोरी लेती है, भले ही सामग्रियों को कचरा इकट्ठा किया जा सकता है, फिर भी इसे ओएस पर वापस नहीं छोड़ा जाता है। इसके अलावा, मुझे विजुअलVM का यकीन नहीं है, लेकिन ग्रहण मैट केवल "वर्तमान" ढेर दिखाता है (यदि उस समय जीसी चलाया गया तो कचरा नहीं होगा)। आप jstat को भी देखना चाह सकते हैं।

5

साझा पुस्तकालय, थ्रेड का ढेर, परम जीन, सीधी मेमोरी, मेमोरी मैप की गई फाइलें हैं।

हालांकि, JVM स्टार्टअप पर अधिकतम ढेर आकार आवंटित करता है। उपयोग की गई राशि इससे कोई फर्क नहीं पड़ता।

संबंधित मुद्दे