2009-07-17 12 views
6

समय के साथ, सूर्य का जेवीएम और जेआईटी बहुत स्मार्ट हो गया है। जरूरी सूक्ष्म अनुकूलन होने के नाते सामान्य ज्ञान होने वाली चीजें अब आवश्यक नहीं हैं, क्योंकि यह आपके लिए ख्याल रखती है।स्मार्ट जेवीएम और जेआईटी माइक्रो-ऑप्टिमाइजेशन

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

जेवीएम या जेआईटी आपके लिए क्या अन्य स्मार्ट माइक्रो-अनुकूलन करता है?

EDIT: मैंने इसे एक समुदाय विकी बना दिया; मैं इन समय के साथ इकट्ठा करना चाहता हूँ।

उत्तर

6

यह प्रभावशाली से परे है। ये सभी चीजें हैं जिन्हें आप can't सी ++ में करते हैं (निश्चित रूप से जावा की समान सीमा तक)। ध्यान रखें कि जावा के शुरुआती संस्करणों ने इन चीजों को न होने से "धीमी" प्रतिष्ठा शुरू की है, और हम समय के साथ में में सुधार करते रहते हैं। यह अभी भी एक बड़ा शोध क्षेत्र है।

+0

अच्छी जावा स्मार्ट हो सकती है लेकिन यह अभी भी बहुत सारे संसाधनों का उपयोग करती है – Roch

+2

@mnml यह लोकप्रिय राय से कम है। एक वस्तु बनाने के लिए मुझे लगता है कि वे इसे 2 या 3 निर्देशों की तरह कुछ करने के लिए नीचे है। हाँ सी ++ की तरह कुछ आम तौर पर तेज़ है, लेकिन 'संसाधन' केवल सीपीयू और मेमोरी नहीं है; यह आदमी भी घंटे है। हार्डवेयर सस्ता है, लोग महंगी हैं। लंबी अवधि में, जावा अक्सर प्रदर्शन में जीत जाएगा क्योंकि इसकी जेआईटी अद्भुत है और ऐप को अधिकतर सी ++ ऐप्स का सपना देख सकता है। –

+1

@ एलेक्स की इच्छा है कि मैं आपको संसाधन बताऊंगा कि लोग संसाधन हैं। भरोसेमंद है क्योंकि यह विश्वास करना है। एक कर्मचारी के रूप में आपका समय अक्सर एचडीडी में एक अतिरिक्त टेराबाइट के लिए वसंत करने या आपके पुराने वेब सर्वियर में बेहतर सीपीयू के मुकाबले कंपनी को अधिक पैसा खर्च करेगा। –

3

जावा इनलाइनिंग में होशियार के रूप में यह

  • इनलाइन कोड क्रम पर ही उपलब्ध या यहाँ तक कि गतिशील रूप से उत्पन्न कर सकते हैं।
  • इनलाइन आभासी तरीकों (एक बार में दो तक)
  • इनलाइन विधियों और उन विधियों पर बचने के तरीकों पर भागने का विश्लेषण करें। (बहुत कठिन सी में करने के लिए ++)
संबंधित मुद्दे