मैंने रिशेर्पर का उपयोग शुरू किया और यह संकेत दिया कि एक विधि स्थिर हो सकती है। स्थिर तरीकों से कुछ सौ विधियों को परिवर्तित करने से बड़ी अवधि में मेमोरी पदचिह्न बढ़ जाएगा?विधियों को स्थिर तरीकों से परिवर्तित करते समय मेमोरी उपयोग
उत्तर
नहीं - स्थिर तरीकों में बदलना स्मृति पर कोई प्रभाव नहीं पड़ता है।
पहली बार एक प्रकार का संदर्भ दिया गया है (चाहे स्थैतिक या गैर स्थैतिक), किसी भी स्थिर सदस्य प्रारंभ किए जाते हैं और स्थैतिक रचनाकार चलाए जाते हैं।
हालांकि, यदि आप गैर स्थैतिक से स्थिर तक स्विचिंग विधियों पर विचार कर रहे हैं, तो इसका कचरा संग्रह या कुल मेमोरी पदचिह्न पर कोई प्रभाव नहीं पड़ेगा।
यदि आप कक्षा के सदस्यों को स्थैतिक सदस्यों के रूप में बदलते हैं तो आपको स्मृति पदचिह्न बदलने के बारे में चिंता करने की ज़रूरत है। इस मामले में, टाइप किए जाने के बाद स्थिर फ़ील्ड रूट रहेंगे, और जीसी द्वारा एकत्र नहीं किया जाएगा। यह आम तौर पर केवल तभी किया जाता है जब आवश्यक हो, और डिज़ाइन द्वारा - आप एक सदस्य स्थिर बनाते हैं क्योंकि आप इसे जारी रखना चाहते हैं।
जेआईटी कंपाइलर के दृष्टिकोण से, स्थिर और एक आवृत्ति विधि के बीच कोई अंतर नहीं है। उनके लिए मशीन कोड बहुत समान है, यह एक ही तरह के ढेर में संग्रहीत हो जाता है। केवल अंतर यह है कि एक उदाहरण विधि में एक अतिरिक्त तर्क है।
विधि को कॉल करते समय उस अतिरिक्त तर्क को पारित करने की आवश्यकता है। इससे अतिरिक्त मशीन कोड निर्देश हो सकता है लेकिन अक्सर नहीं। सीपीयू रजिस्टर (ईसीएक्स) में पहले से ही सही मूल्य है। यदि कोई उदाहरण विधि x86 पर एक से अधिक तर्क है या x64 पर तीन से अधिक तर्क है, तो एक सीपीयू रजिस्टर के बजाय स्टैक पर एक अतिरिक्त तर्क पारित किया जाना चाहिए। एक अतिरिक्त निर्देश।
सबसे खराब मामला, आप एक नैनोसेकंड से थोड़ा कम देख रहे हैं। माइक्रो-ऑप्टिमाइज़ेशन के साथ सामान्य समस्या को मापने में मुश्किल होगी।
यह मूल प्रश्न के दायरे से बाहर हो सकता है, लेकिन एक विधि, स्थैतिक या नहीं, जब ढेर पर संग्रहीत किया जाता है? क्या यह सिर्फ विधि ही है, या विधि वाला वर्ग का उदाहरण, या कुछ और पूरी तरह से? क्या यह स्मृति कभी कचरा संग्रह द्वारा एकत्र की जाती है? –
विधि कॉल के दौरान ढेर पर कुछ भी संग्रहीत नहीं होता है। सीपीयू रजिस्टरों और ढेर के माध्यम से तर्क पारित किए जाते हैं। कुछ भी एकत्र करने की जरूरत नहीं है। पेटज़ोल्ड की पुस्तक "कोड" आपको रूचि दे सकती है। –
ठीक है कि बहुत समझ में आता है। तो वास्तव में, मेरे तरीकों को गैर स्थैतिक से स्थैतिक में परिवर्तित करने का एकमात्र कारण क्लास इंस्टेंटेशन के बिना उन्हें एक्सेस करना होगा? आपकी सिफारिश के लिए धन्यवाद। –
- 1. लेखन jquery स्थिर उपयोग विधियों
- 2. कर्सर आवंटित करते समय मेमोरी से बाहर
- 3. जावा इकाइयों को लोड करते समय मेमोरी से बाहर
- 4. क्यों उपयोग करें !! int को बूल में परिवर्तित करते समय?
- 5. दाओ कक्षा में स्टेटिक विधियों या कोई स्थिर तरीकों का उपयोग करना?
- 6. विधियों को ओवरराइड करते समय एक्सेस निर्दिष्ट करें
- 7. थ्रेडिंग और स्थिर तरीकों
- 8. सी ++ सिंगलटन बनाम स्थिर तरीकों
- 9. पीएचपी मिल स्थिर तरीकों
- 10. कॉल डायनामिक विधियों का उपयोग करते समय IllegalAccessException
- 11. जहां स्थिर आवंटित करते समय स्मृति आवंटित की जाती है?
- 12. वसंत में स्थिर तरीकों को कैसे रोकें?
- 13. स्थिर तरीकों के साथ नकली कैसे करें?
- 14. पायथन में स्थिर तरीकों का उपयोग करना - सर्वोत्तम अभ्यास
- 15. जावा में स्थिर तरीकों के विकल्प
- 16. मार्क्सलिंग करते समय @XmlRootElement के बाध्यकारी सुपरक्लास विधियों से JAXB को कैसे रोकूं?
- 17. मुझे सार्वजनिक/निजी/स्थिर तरीकों का उपयोग कब करना चाहिए?
- 18. एक्सकोडर का उपयोग करते समय एक्सकोड अव्यवस्थित तरीकों के बारे में क्यों शिकायत नहीं करता है?
- 19. इंटरफ़ेस विधियों को लागू करते समय आभासी अनुमति क्यों है?
- 20. जावा में स्थिर सहायक विधियों का उपयोग क्यों खराब है?
- 21. C#: सांत्वना आवेदन - स्थिर तरीकों
- 22. स्थिर ग्लोबल्स घोषित करते समय स्थिर आवश्यक है?
- 23. मेमोरी आवंटन करते समय एक नक्शा
- 24. LINQ से इकाइयों और सहायक तरीकों का उपयोग करते समय DRY कैसे रहें?
- 25. क्या मुझे हमेशा अपनी विधियों को यथासंभव स्थिर बनाना चाहिए?
- 26. आप cstring से NSString को कैसे परिवर्तित करते हैं?
- 27. एक स्थैतिक वर्ग में एक स्थिर स्थैतिक वर्ग और स्थैतिक तरीकों में स्थिर तरीकों के बीच क्या अंतर है?
- 28. स्थिर तरीकों में स्थानीय चर भी स्थिर हैं?
- 29. पर्ल मॉड्यूल से तरीकों को कॉल करते समय '::' और '->' काम (प्रकार) का एक-दूसरे से क्यों काम करते हैं?
- 30. जेनेरिक सूचियों को परिवर्तित करते समय स्पष्ट रूपांतरण ऑपरेटर त्रुटि
क्या स्मृति में कहीं भी संग्रहीत स्थिर विधि की एक प्रति है? मेरी धारणा यह थी कि जब आपने एक स्थिर विधि का संदर्भ दिया, तो उसे कहीं भी संग्रहीत किया जाएगा, और फिर प्रत्येक अनुवर्ती संदर्भ विधि के उस उदाहरण का उपयोग करेगा, लेकिन मुझे लगता है कि यह धारणा गलत हो सकती है। –
"विधि", चाहे स्थैतिक या उदाहरण विधियां, स्मृति में एक बार लोड हो जाती हैं जब उन्हें प्रक्रिया स्थान में लाया जाता है, और जेआईटी द्वारा संकलित किया जाता है। स्थैतिक और गैर स्थैतिक के बीच विधि उपयोग में वास्तव में कोई अंतर नहीं है। इस बात पर फ़ोकस करें कि आपके विशिष्ट मामले में स्थिर विधियां उचित हैं या नहीं और यह निर्धारित करने के लिए कि कोई विधि स्थिर या आवृत्ति विधि हो या नहीं। –
मेमोरी पर बहुत ही छोटा प्रभाव पड़ता है - क्योंकि "कोड" को उन तरीकों से पास करने के लिए अतिरिक्त कोड उत्पन्न होता है जो इसका उपयोग नहीं करते हैं। – Qwertie