JVM

2010-08-17 16 views
5

में कौन से फ़ंक्शंस शामिल हैं JVM के फ़ंक्शन क्या हैं? सभी मुझे पता हैं:JVM

  • JIT कम्पाइलर
  • जीसी
  • स्मृति allocator

क्या कदम यह है जब आप एक जावा अनुप्रयोग लोड कर रहे हैं?

मैं सोच रहा हूँ क्योंकि अगर मैं इन चरणों के साथ एक जावा आवेदन की लोडिंग समय की तुलना:

  • InitializeNativeTarget LLVM पर
  • कुछ जीसी प्रारंभ
  • कुछ क्यूटी/जीटीके/जो कुछ भी init
  • ऐप के कुछ हिस्सों के कुछ जेआईटी/आगे संकलन
  • ऐप इनिट खुद को

ऐसा लगता है कि जेवीएम ने ऊपर सूचीबद्ध चरणों को करने के लिए लोड करने में काफी समय लगाया है। तो इसके अलावा यह क्या करता है?

+3

क्या आपने [विनिर्देश पढ़ा है] (http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html)? –

+0

मुझे नहीं लगता कि यह वोट देने के योग्य है, यह एक दिलचस्प सवाल है। –

उत्तर

2

यह वास्तव में एक बहुत ही रोचक सवाल है - अपने आप को देखने के लिए, एक हैलो वर्ल्ड प्रोग्राम चलाएं -XX: -TraceClass जावा निष्पादन योग्य को लोड करना।

+0

जीसी लॉगिंग चालू करें। –

+0

मैंने 'जावा -verbose: gc -XX: -TraceClassLoading JavaHelloWorld' की कोशिश की लेकिन यह सब आउटपुट सिर्फ 'हैलो वर्ल्ड' है। क्या मुझे कुछ याद आती है? – Albert

+3

@ अल्बर्ट: '-XX: + TraceClassLoading' –

1

यह पूरे जेवीएम को स्क्रैच से बूटस्ट्रैप्स करता है। इसमें कुछ समय लगता है।

+0

बूटस्ट्रैप कैसा दिखता है? – Albert

+0

प्रत्येक वर्ग को देखने के लिए "-verbose" ध्वज का उपयोग करें क्योंकि इसे क्लास लोडर द्वारा खींचा जाता है। आप आश्चर्यचकित हो सकते हैं ... –