कभी-कभी कंपाइलर इनलाइन फ़ंक्शन कॉल करते हैं। इसका मतलब है कि वे बुलाए गए फ़ंक्शन के कोड को कॉलिंग फ़ंक्शन में स्थानांतरित करते हैं। इससे चीजें थोड़ी तेज़ हो जाती हैं क्योंकि कॉल स्टैक को चालू और बंद करने के लिए कोई धक्का देने की आवश्यकता नहीं होती है।
तो मेरा सवाल है, क्यों सब कुछ इनलाइन संकलक नहीं है? मुझे लगता है कि यह निष्पादन को उल्लेखनीय रूप से तेज कर देगा।
एकमात्र कारण जिसके बारे में मैं सोच सकता हूं, वह काफी बड़ा निष्पादन योग्य है, लेकिन क्या यह वास्तव में इन दिनों सैकड़ों जीबी मेमोरी के साथ मायने रखता है? क्या बेहतर प्रदर्शन इसके लायक नहीं है?
क्या कोई अन्य कारण है कि कंपाइलर केवल सभी फ़ंक्शन कॉल को इनलाइन नहीं करते हैं?
Isn't the improved performance worth it?
एक विधि के लिए जो 100 बार लूप चलाएगा और कुछ गंभीर संख्याओं को क्रंच करेगा, सीपीयू रजिस्टरों में 2 या 3 तर्कों को स्थानांतरित करने का ओवरहेड कुछ भी नहीं है।