2013-07-26 5 views
7

निष्पादित करने के बाद मैंने लिया स्नैपशॉट्स jvisualvm से जीसी निष्पादित करते हैं। Heap Stats और Permgen Statsजीसी निष्पादित करने के बाद स्थायी पीढ़ी के आवंटित आकार का आवंटन क्यों किया जाता है?

पहले छवि ढेर आँकड़े है और 2 एक पर्म जनरल आँकड़े है। मैं समझ नहीं पा रहा हूं कि जब मैंने जीसी उपयोग किया था, तो आकार का आकार घट गया (अपेक्षित के रूप में) लेकिन स्थायी पीढ़ी के आवंटित आकार में वृद्धि हुई (हालांकि उपयोग किए गए परमजन आकार एक ही बने रहे)। What could be the possible explanation of such behavior?

JVM तर्क का इस्तेमाल किया

-Xbootclasspath/p:../xyz.jar 
-Xbootclasspath/a:../abc.jar 
-Djava.endorsed.dirs=../resolver 
-Djava.library.path=../framework 
-Djavax.management.builder.initial=JBeanServerBuilder 
-Djavax.net.ssl.trustStore=../certs 
-Dorg.mortbay.log.class=JettyLogger 
-Xms128m 
-Xmx256m 
-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=2000 

नोट: मैं औचित्य कारणों के लिए नाम (उदा xyz.jar) बदल दिया है।

JVM जानकारी:

JVM: Java HotSpot(TM) 64-Bit Server VM (23.6-b04, mixed mode) 
Java: version 1.7.0_11, vendor Oracle Corporation 
Java Home: /home/aniket/jdk1.7.0_11/jre 
JVM Flags: <none> 
+4

मुझे लगता है कि चाहते हैं कि जी सी विभिन्न आकारों यह संग्रह रन के हिस्से के रूप नियंत्रित करने के लिए है का पुन: मूल्यांकन। तो यह तय कर सकता है कि यह चीजों के बढ़ते जेन पक्ष पर थोड़ा कड़ा है। –

+0

आप किस वीएम/जीसी का उपयोग करते हैं, आप किस वीएम को वीएम शुरू करते हैं? –

+0

@ जेन्सस्चौडर: संभवतः हॉटस्पॉट इंटर्नल के बारे में बहुत अधिक अटकलों के बिना इस सवाल के लिए यह सबसे अच्छा जवाब हो सकता है ... –

उत्तर

3
  • स्मृति आवंटन हीप/पर्म/ईडन/यंग/एस 1/एस 2 आदि रिक्त स्थान जीसी के लिए उपयोग किए गए अंतर्निहित एल्गोरिदम पर निर्भर करता है।
  • उपरोक्त रिक्त स्थान पर मेमोरी आवंटन को पूर्ण मान पैरामीटर के रूप में परिभाषित नहीं किया गया है। उन्हें JVM के लिए उपलब्ध कुल ढेर/परम के अनुपात के रूप में परिभाषित किया जाता है।
  • दो बिंदुओं से ऊपर शायद यह इंगित करता है कि जब हीप आकार बदलता है, तो सभी रिक्त स्थानों के लिए सभी मेमोरी आवंटन को परिभाषित अनुपात को बनाए रखने के लिए फिर से मूल्यांकन किया जाता है।

लिंक नीचे वास्तव में उपयोगी हो जाएगा:

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html

1

के बाद से कोई भी नहीं एक जवाब प्रदान करता है, मैं अपने टिप्पणी एक जवाब बनाने, हालांकि यह एक छोटे से अस्पष्ट है:

मुझे लगता है कि चाहते हैं कि जी सी विभिन्न आकारों का पुन: मूल्यांकन यह संग्रह चलाने के हिस्से के रूप में नियंत्रण करना है। तो यह तय कर सकता है कि यह चीजों के बढ़ते जेन पक्ष पर थोड़ा कड़ा है।

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