जब प्रत्येक लूप के लिए लूप को प्रतिस्थापित किया जाता है, तो डेवलपर्स को अक्सर निम्नलिखित पैटर्न का सामना करना पड़ता है:
for (int i = 0, n = a.length; i सरल के बजाय:
for (int i = 0; i इससे सवाल उठता है: क्या अतिरिक्त n = a.length असाइनमेंट सरणियों के लिए एक प्रदर्शन हिट है?
उत्तर
नहीं, array.length के लिए एक कॉल है एक O(1) या स्थिर समय संचालन।
किसी सरणी की .length संपत्ति एक सार्वजनिक अंतिम सदस्य है, और इसे एक्सेस करना स्थानीय चर से धीमा नहीं है। यह आकार() जैसी विधि कॉल के विपरीत है, जिसमें आम तौर पर अधिक ओवरहेड शामिल होता है।
आधुनिक जेआईटी कंपाइलर इसे पूरी तरह से खत्म करने के लिए कॉल को .length पर अनुकूलित भी कर सकते हैं। इसे सत्यापित करने के लिए, कोई जेआईटी कंपाइलर के स्रोत कोड का निरीक्षण कर सकता है या डंप किए गए मूल कोड की जांच कर सकता है। लूप बॉडी में अत्यधिक स्थानीय चर होते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3