"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > ## क्या लूप के लिए `array.length` को कॉल करना एक प्रदर्शन बाधा है?

## क्या लूप के लिए `array.length` को कॉल करना एक प्रदर्शन बाधा है?

2024-11-07 को प्रकाशित
ब्राउज़ करें:499

## Is Calling `array.length` in a for Loop a Performance Bottleneck?

कॉलिंग की लागत array.length

जब प्रत्येक लूप के लिए लूप को प्रतिस्थापित किया जाता है, तो डेवलपर्स को अक्सर निम्नलिखित पैटर्न का सामना करना पड़ता है:

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