क्या सी # कक्षा में private
, protected
, public
और internal
विधियों के प्रदर्शन के संबंध में कोई अंतर है? मुझे दिलचस्पी है अगर कोई अधिक प्रोसेसर समय या रैम का उपभोग करता है।क्या सी # कक्षाओं में निजी, संरक्षित, सार्वजनिक और आंतरिक तरीकों के प्रदर्शन के संबंध में कोई अंतर है?
उत्तर
मैं सामान्य आमंत्रण के लिए किसी भी प्रदर्शन अंतर के से अवगत नहीं हूं; यह संभव है कि अधिक प्रतिबंधित पहुंच गतिशील आमंत्रण या प्रतिबिंब के माध्यम से पहुंचने पर थोड़ा अधिक काम करेगी क्योंकि कॉलर को अधिक सावधानीपूर्वक सत्यापित करने की आवश्यकता हो सकती है। सामान्य जेआईटी संकलित मामले में सीएलआर द्वारा केवल एक बार सत्यापित किया जा सकता है और फिर मंजूरी के लिए लिया जा सकता है। मुझे लगता है कि यह संभव है कि जेआईटी संकलन (और आईएल सत्यापन) स्वयं अधिक प्रतिबंधक पहुंच के लिए थोड़ा धीमा हो सकता है - लेकिन मुझे विश्वास करना मुश्किल लगता है कि यह महत्वपूर्ण होगा।
यह बिल्कुल यह निर्धारित करने में कोई कारक नहीं है कि उपयोग करने के लिए कौन सी पहुंच है, भले ही किसी तरह से कुछ छोटे प्रदर्शन अंतर हैं, मुझे अनजान है। अगर आपको लगता है कि आप अपने डिजाइन के लिए "प्राकृतिक" एक के अलावा कुछ और पहुंचने के द्वारा प्रदर्शन लाभ प्राप्त करने में सक्षम हो सकते हैं, तो आपको निश्चित रूप से पहले/बाद के मामले में बेंचमार्क करना चाहिए - मुझे संदेह है कि आपको खोजने के लिए कठोर दबाव डाला जाएगा वास्तविक दुनिया की स्थिति जहां अंतर विश्वसनीय रूप से मापनीय है।
इसी प्रकार की सलाह सभी प्रकार के माइक्रो-ऑप्टिमाइज़ेशन के लिए जाती है: वैसे भी यह लगभग कोई अच्छा विचार नहीं है, और निश्चित रूप से केवल सावधानीपूर्वक मापने के भीतर किया जाना चाहिए।
मुझे आश्चर्य है कि आप अधिक स्पष्ट नहीं थे। ऐसा कहकर, मैं "नहीं" पर विस्तार करने की प्रक्रिया में था। – harpo
निजी तरीकों को शायद जेआईटी इंजन द्वारा अधिक आक्रामक रूप से अनुकूलित (इनलाइन, उदा।) नहीं किया जाएगा? – sehe
@sehe: आप ऐसा क्यों सोचेंगे? यहां तक कि यदि कोई विधि सार्वजनिक है, तो यह जेआईटी संकलन के बाद नहीं बदला जा सकता है ... –
निजी, संरक्षित या सार्वजनिक तरीकों के बीच प्रदर्शन में कोई मापनीय अंतर नहीं होगा।
यदि आप अनुकूलन पर ध्यान केंद्रित करते हैं, तो संभवतः आपको ऑब्जेक्ट उन्मुख की तुलना में कोड के अपने बाधा को अधिक "प्रक्रियात्मक" बनाने का प्रयास करना चाहिए। यह छोटे सुधार करेगा।
माइक्रोप्रिमिज़ेशन किसी को भी? –
शायद नहीं, लेकिन मुहरबंद कक्षाओं के साथ एक सुधार (स्मृति, मुझे लगता है) है। –
'निजी स्थैतिक' (गैर-'स्टिक 'के विपरीत) विधियों के बारे में क्या? –