का उपयोग reflection का उपयोग करने का प्रदर्शन भूमि के ऊपर के बारे में इस चर्चा में, यह कहा गया है:क्रम अनुकूलन किस तरह खो रहे हैं अगर हम प्रतिबिंब
प्रतिबिंब केउपयोग पैदा कर सकता है कुछ क्रम अनुकूलन खो जाएं। उदाहरण के लिए, निम्न कोड की काफी संभावना है एक जावा आभासी मशीन द्वारा अनुकूलित है किया:
int x = 1; x = 2; x = 3;
समतुल्य कोड Field.set * का उपयोग कर() नहीं हो सकता है।
प्रतिबिंब के बिना, जेवीएम द्वारा किस तरह के रनटाइम अनुकूलन किए जाएंगे?
यह केवल 'x = 3' चलाएगा। जब आप मिश्रण में प्रतिबिंब फेंकते हैं तो सभी प्रकार की इनलाइनिंग चाल, ओपोड उन्मूलन इत्यादि दूर जाते हैं। –
यह एक दिलचस्प सवाल है, लेकिन मुझे लगता है कि यह एक एकल SO प्रश्न के लिए बहुत व्यापक है। – chrylis
एक्स के लिए असाइनमेंट कुछ भी नहीं करता है। यह एक स्थानीय चर है, कोई बहु-थ्रेड नहीं, कोई समरूपता नहीं है और इसे हटाया जा सकता है। यदि आप Field.set का उपयोग करते हैं तो अन्य थ्रेड में चर के लिए उपयोग हो सकता है ताकि इसे कभी अनुकूलित नहीं किया जा सके। मैं ऐसा सोचता हूं। –