कक्षा के नाम को कैशिंग करने से दूसरे संदर्भ का ओवरहेड होगा। इससे स्मृति पदचिह्न के लिए जेवीएम ओपकोड्स (सीपीयू जटिलता) की लागत बढ़ जाती है।
आजकल सीपीयू इतने तेज़ हैं कि वे मूल रूप से स्मृति पर प्रतीक्षा करते हैं, इसलिए यदि आपको ऑपकोड और मेमोरी पदचिह्न के बीच कोई विकल्प बनाना पड़ा, तो आप JVM के माध्यम से अधिक ऑपकोड चलाने के लिए बेहतर विकल्प चुन सकते हैं।
पहले यह सहज नहीं लगता है; लेकिन, जेवीएम और आसपास के हार्डवेयर पर विचार करें। बड़ी मेमोरी पैरों के निशान का मतलब है कि हाल ही में कैश में कम से कम एक्सेस किए गए आइटम, और कैश से निकलने वाली किसी वस्तु को फिर से लाने की लागत कहीं भी एक जेवीएम ऑपोड चलाने के लिए 1,000 से 10,000 गुना अधिक है। जेवीएम के जिट इंजन के साथ इसे युगल करें, और कोड के भारी एक्सेस किए गए हिस्सों के लिए सीपीयू जटिलता को मुफ्त में अनुकूलित किया जाता है (बाकी सब कुछ के अतिरिक्त)।
तो, सामान्य रूप से, मैं संदर्भ को कैश नहीं कर अपने ऑब्जेक्ट को ट्रिम कर दूंगा क्योंकि इससे अधिकतर स्तर 1 कैश में स्थानांतरित होने की अनुमति मिल जाएगी। हालांकि, सभी वास्तविक विश्व प्रदर्शन ट्यूनिंग की तरह, आपको यह देखने के लिए परीक्षण करना चाहिए कि क्या परिणाम परिकल्पना से मेल खाते हैं, और अपना परीक्षण इस तरह से करें कि आप JVM की अन्य सभी आंतरिक कार्यप्रणालियों से भ्रमित न हों।
स्रोत
2011-08-18 14:53:22
यह एक अच्छा सुझाव है, धन्यवाद! –