संभव डुप्लिकेट:
Is recursion ever faster than looping?रिकर्सन ओवरहेड - यह कितना गंभीर है?
मैं पहली बार सी, के बारे में 15 साल पहले में गंभीरता से कार्यक्रम के लिए प्रशिक्षित किया गया था। मेरा नियोक्ता कम्प्यूटेशनल मुश्किल कार्यों के लिए अत्यधिक अनुकूलित कोड चाहता था। मुझे याद है कि "रिकर्सन ओवरहेड" से बचने के लिए, पठनीयता के महंगे पर भी लूप के रूप में रिकर्सन को फिर से लिखने के लिए सलाह दी जा रही है। जैसा कि मैंने इसे समझा, फिर रिकर्सन ओवरहेड डेटा को स्टैक पर धक्का देने के लिए आवश्यक अतिरिक्त प्रयास था और बाद में इसे बंद कर दिया गया।
अब मैं सी, पायथन, पर्ल और कभी-कभी जावा में कोड करता हूं, और मुझे कभी-कभी रिकर्सन के बारे में आश्चर्य होता है। क्या उन्हें अभी भी लिखकर कुछ हासिल किया जा सकता है? क्या होगा यदि वे पूंछ रिकर्स हैं? क्या आधुनिक कंपाइलर्स ने इन सभी मुद्दों को हल किया है? क्या ऐसी चिंताओं को व्याख्या की गई भाषाओं के लिए अप्रासंगिक है?
फंक्शन कॉलिंग ओवरहेड सिस्टम में काफी भिन्न हो सकता है, इसलिए यह प्रश्न केवल एक विशेष संदर्भ में समझ में आता है। उस ने कहा, मुझे लगता है कि पिछले कुछ दशकों में सामान्य प्रवृत्ति कम ओवरहेड की ओर है। – dmckee