2010-10-18 13 views
12

शीर्षक मेरे प्रश्न को काफी अच्छी तरह से कैप्चर करता है। मैं सोच रहा हूं कि क्या एक JVM (केवल हॉटस्पॉट नहीं है, लेकिन यह स्पष्ट रूप से शुरू करने की जगह है) के बारे में प्रश्नों के लिए कोई अच्छा संसाधन या लीपिंग-ऑफ पॉइंट है या नहीं, एक विशिष्ट कार्यक्षमता को लागू या संभालता है? मैं JLS या JVM Spec में मौजूद सामानों की तलाश नहीं कर रहा हूं - मुझे पहले वहां जाना है।प्रोग्रामर/डेवलपर्स के लिए जेवीएम इंटर्नल्स पर कैननिकल संदर्भ

उदाहरण के लिए: प्रदर्शन समस्याओं को समझने की कोशिश करते समय, हम अकसर वार्तालापों के बारे में बातचीत नहीं करते हैं, लेकिन व्यावहारिक कार्यान्वयन में समकालीन सर्वोत्तम प्रथाओं की तरह क्या दिखता है। उदाहरण के लिए, कुछ शहरी पौराणिक कथाएं हैं जो कहती हैं "अंतिम कक्षाएं जावा में बेहतर प्रदर्शन करती हैं क्योंकि JVM इन चीजों को इनलाइन या अन्यथा अनुकूलित कर सकता है।" क्या कोई सामान्य संसाधन है जो हम इन दावों का मूल्यांकन करने के लिए चालू कर सकते हैं जो आसपास तैरते हैं?

मैं हॉटस्पॉट-विशिष्ट संदर्भों के साथ अपने स्वयं के प्रश्न का उत्तर देता हूं। अन्य विक्रेताओं के प्रस्तावों के बारे में क्या? छोटे JVMs के लिए विशिष्ट? मल्टी कोर विनिर्देशों? प्लेटफार्म विनिर्देश, अगर वे कोई फर्क पड़ता है? अन्य जेवीएम भाषाओं के लिए विशिष्ट?

बस कुछ संभावित शिकायतों का सामना करने के लिए: 1) यह समयपूर्व अनुकूलन की तलाश नहीं कर रहा है (और वास्तव में, मंच की बेहतर समझ बेहतर शिक्षित डेवलपर को विचलित करनी चाहिए!); और 2) मुझे पता है कि जावा प्रोग्रामर को अच्छे, पोर्टेबल, रन-कहीं भी कोड पर ध्यान केंद्रित करना चाहिए, लेकिन हम में से कई प्लेटफ़ॉर्म विनिर्देशों को समाप्त कर देते हैं!

यह specific question पर Thorbjørn Ravn Andersen पर कुछ सहायक टिप्पणियों से प्रेरित था। मैं इस बात के बारे में प्रेरित करने के लिए प्रेरित करता हूं कि लोग इस प्रकार के संसाधन क्यों चाहते हैं, उससे परे कुछ और उपयोगी उदाहरण इकट्ठा करने में मुझे खुशी है।

SO: Tail-call optimization in JVM, Killer JVM features, optimizations that are going to be useless tomorrow, Differences between JVM implementations पर कुछ दिलचस्प संबंधित प्रश्न।

संपादित जोड़ें: मैं उल्लेख किया है, या कोई है जो एक वेबसाइट (शायद इस सवाल के जवाब में बनाया गया) के लिए सूचक प्रदान करता है के लिए या तो सबसे अच्छा व्यक्तिगत संदर्भ के लिए जवाब है कि सबसे अच्छा ध्यान केंद्रित/कैटलॉग अवार्ड देंगे जेवीएम कार्यान्वयन ज्ञान और क्लाइंट भाषाओं और डेवलपर्स पर व्यावहारिक परिणाम।

उत्तर

5
  • OpenJDK "JVM Internals" wiki, हॉटस्पॉट
  • Oracle की Java SE 6 Performance White Paper और अपने पूर्ववर्तियों की अंतर्दृष्टि का एक बहुत देने के लिए शुरू करने के लिए एक जगह है, हालांकि मेरे सवाल के लिए आयोजित नहीं है दर असल
  • हॉटस्पॉट के लिए तुल्यकालन पर, मेरे answer here देखना ।
+0

ठीक है, मैंने इसे एक सप्ताह दिया है, मैं अपने उत्तर को सही करने के लिए जा रहा हूं, किसी और को बेहतर कुछ प्रदान करने के लिए लंबित हूं। – andersoj

0

कुछ समय पहले मैंने what advanced programmer should know about jvm internals के बारे में संक्षिप्त सारांश दिया और उसे समवर्ती, जीसी, जेट इत्यादि को बेहतर ढंग से समझने में मदद की। यह विनिर्देश और ओपनजेडीके के आधार पर एक केंद्रित सारांश है।

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