2013-02-22 47 views
7

मैं यह जानने की कोशिश कर रहा हूं कि Class Data Sharing संग्रह (java -Xshare:dump चलाकर) मूल कोड में बाइट कोड संकलित करता है या नहीं।क्या जावा कोड क्लास डेटा शेयरिंग आर्काइव (classes.जेएसए) में मूल रूप से संकलित किया गया है या यह बाइटकोड है?

क्लास डेटा शेयरिंग के आंतरिक के बारे में बहुत सारे दस्तावेज नहीं हैं। पेज मैं जुड़ा हुआ है कि java -Xshare:dump

एक निजी आंतरिक प्रतिनिधित्व में प्रणाली जार फ़ाइल से कक्षाओं का एक सेट लोड करता है, और एक फाइल करने के लिए है कि प्रतिनिधित्व उदासीनता कहते हैं।

लेकिन इस कोड को संकलित या नहीं किया गया है, इसके बारे में कुछ भी नहीं कहता है।

(संभवतः संबंधित: Speed up application start by adding own application classes to classes.jsa)

+0

ऐसा लगता है कि जावा 6 के लिए आईबीएम जेवीएम ऐसा कर सकता है: http://www.ibm.com/developerworks/library/j-sharedclasses/ –

उत्तर

2

दोनों ही मामलों में यह कैश में मूल कोड (लिंक आप अलग अलग वास्तुकला के मशीनों पर कैश पुनः के बारे में प्रदान में चर्चा को देखें) है। आईबीएम जेवीएम क्लस्टर के लिए अधिक विकल्प और एक अच्छा लेआउट के साथ आगे ले जाता है, लेकिन ओरेकल एक भी काम करता है।

+0

आप वास्तव में क्या कहते हैं कि यह मूल कोड है? "विभिन्न आर्किटेक्चर" प्रश्न का अर्थ केवल क्लास आर्काइव फ़ाइल का लेआउट ओएस (पीटीआरएस आदि का आकार) पर निर्भर करता है और तुरंत यह संकेत नहीं देता कि कोड मूल रूप से संकलित है। –

+0

क्योंकि कोई मध्यवर्ती कदम नहीं है। यह स्रोत-> बाइट कोड-> मूल है। केवल मूल कदम पर आप अंतहीनता, शब्द आकार इत्यादि जैसी चीजों की परवाह करते हैं। इस तथ्य के लिए दस्तावेज में संदर्भ भी है कि कैश कक्षाएं जेआईटी संकलित कक्षाओं के रूप में सक्षम नहीं हो सकती हैं। इसका तात्पर्य यह है कि कैश किए गए वर्ग निष्पादन योग्य हैं क्योंकि जेआईटी किसी भी विशिष्ट हार्डवेयर पर उपलब्ध सभी शॉर्टकट का लाभ उठाता है जो कि संगत आर्किटेक्चर के साथ-साथ उस जेवीएम में विशिष्ट निष्पादन पैटर्न में भी भिन्न हो सकता है। तो कैश से आने वाली कक्षाओं को और संकलित नहीं किया जाता है। – WPrecht