मुझे लगता है कि यह वास्तव में भाषा और कार्य पर निर्भर करता है। जबकि c और c ++ कंपाइलर बहुत सारे कार्यों को इनलाइन कर सकते हैं, यह पायथन या जावा के लिए ऐसा नहीं है।
हालांकि मुझे जावा के लिए विशिष्ट विवरण नहीं पता है (सिवाय इसके कि प्रत्येक विधि आभासी है लेकिन मैं आपको बेहतर प्रलेखन की जांच करने का सुझाव देता हूं), पायथन में मुझे यकीन है कि कोई इनलाइनिंग नहीं है, कोई पूंछ पुनरावृत्ति अनुकूलन और फ़ंक्शन कॉल काफी महंगे हैं।
पायथन फ़ंक्शंस मूल रूप से निष्पादन योग्य ऑब्जेक्ट हैं (और आप जिस वस्तु को एक फंक्शन बनाने के लिए कॉल () विधि को परिभाषित कर सकते हैं, उसे संक्रमित करते हैं )। इसका मतलब है कि उन्हें बुलाने में काफी माथापच्ची हो रही है ...
परंतु
जब आप वेरिएबल्स को फंक्शन्स के अंदर परिभाषित करते हैं, तो इंटरप्रेटर बायटेकोड में सामान्य लोड निर्देश के बजाय LOADFAST का उपयोग करता है, जिससे आपका कोड तेजी से बढ़ता है ...
एक और बात यह है कि जब आप किसी कॉल करने योग्य वस्तु को परिभाषित करते हैं, तो संस्मरण जैसे पैटर्न संभव होते हैं और वे प्रभावी रूप से आपकी गणना को बहुत तेज कर सकते हैं (अधिक मेमोरी का उपयोग करने की लागत पर)। मूल रूप से यह हमेशा एक व्यापार है। फंक्शन कॉल की लागत मापदंडों पर भी निर्भर करती है, क्योंकि वे निर्धारित करते हैं कि स्टैक पर आपको वास्तव में कितना सामान कॉपी करना है (इस प्रकार c / c ++ में बड़े पैरामीटर जैसे पॉइंटर्स / रेफरेंस बाय वैल्यू के बजाय पास करना आम बात है)।
मुझे लगता है कि स्टैकएक्सचेंज पर पूरी तरह से उत्तर देने के लिए आपका प्रश्न बहुत व्यापक है।
मैं आपको जो करने का सुझाव देता हूं वह एक भाषा के साथ शुरू करना है और यह समझने के लिए कि यह कैसे विशिष्ट भाषा द्वारा कार्य कॉल कार्यान्वित किया जाता है, यह समझने के लिए उन्नत प्रलेखन का अध्ययन करें।
आप आश्चर्यचकित होंगे कि आप इस प्रक्रिया में कितनी चीजें सीखेंगे।
यदि आपको कोई विशिष्ट समस्या है, तो माप / रूपरेखा बनाएं और मौसम तय करें कि एक फ़ंक्शन बनाने या समकक्ष कोड को कॉपी / पेस्ट करना बेहतर है।
यदि आप अधिक विशिष्ट प्रश्न पूछते हैं, तो अधिक विशिष्ट उत्तर प्राप्त करना आसान होगा, मुझे लगता है।