뚠뚠멍의 생각들

टेल रिकर्सिव ऑप्टिमाइज़ेशन (Tail Call Optimization)

  • लेखन भाषा: कोरियाई
  • आधार देश: सभी देशcountry-flag
  • आईटी

रचना: 2024-10-12

रचना: 2024-10-12 18:47

कोडिंग टेस्ट की पढ़ाई करते समय, और टेक्स्ट में एनिमेशन प्रभाव डालते समय

रिकर्सिव फ़ंक्शन लिखते समय, AI की मदद से मुझे TCO नामक अवधारणा के बारे में पता चला।


टेल रिकर्सन ऑप्टिमाइज़ेशन रिकर्सिव कॉल से होने वाले स्टैक ओवरफ़्लो को रोकता है, और मेमोरी के उपयोग को कुशल बनाता है।


जावस्क्रिप्ट में, इसे es6 स्ट्रिक्ट मोड में समर्थित करने के लिए निर्दिष्ट किया गया है, लेकिन ऐसा लगता है कि अभी भी कई ब्राउज़र इसे सपोर्ट नहीं करते हैं।


सामान्य रिकर्सन


टेल रिकर्सन


रिकर्सिव फ़ंक्शन कॉल के साथ फ़ंक्शन के अंतिम ऑपरेशन को समाप्त करने की विधि को टेल रिकर्सन कहा जाता है।

फ़ंक्शन स्टैक फ़्रेम की आवश्यकता नहीं है, इसलिए मेमोरी का उपयोग अनुकूलित किया गया है!


जावस्क्रिप्ट में टेल रिकर्सन को लागू करने का तरीका ट्रैम्पोलिन तकनीक का उपयोग करना है।

इस विधि में, factorialTCO फ़ंक्शन सीधे परिणाम वापस करने के बजाय एक फ़ंक्शन देता है।

ट्रैम्पोलिन फ़ंक्शन इन लौटाए गए कार्यों को निष्पादित करता रहता है और अंतिम परिणाम प्राप्त करता है।


यह फ़ंक्शनल प्रोग्रामिंग में एक प्रमुख तकनीक है, और यह रिकर्सिव फ़ंक्शन की कमियों (स्टैक ओवरफ़्लो) को हल करने के मामले में दिलचस्प है। वास्तव में, जब मैंने केवल कोड देखा, तो मुझे यह समझने में मुश्किल हुई, इसलिए मुझे इसे फिर से देखना होगा।


टिप्पणियाँ0

[स्प्रिंग] @Async का उपयोग कैसे करेंस्प्रिंग @Async का उपयोग करके जावा एसिंक्रोनस प्रोसेसिंग को आसानी से लागू करने के तरीके जानें। थ्रेड पूल सेटिंग और Future, ListenableFuture, CompletableFuture के उपयोग को शामिल किया गया है।
제이온
제이온
제이온
제이온

April 25, 2024

[इफेक्टिव जावा] आइटम 6. अनावश्यक ऑब्जेक्ट निर्माण से बचेंअनावश्यक ऑब्जेक्ट निर्माण मेमोरी की बर्बादी का कारण बनता है, इसलिए स्ट्रिंग या बूलियन जैसे ऑब्जेक्ट के लिए लिटरल या स्टेटिक फैक्ट्री मेथड का उपयोग करना बेहतर होता है।
제이온
제이온
제이온
제이온

April 28, 2024

2024-11-16 विभिन्न विषयों में रुचि: ब्लॉग की शुरुआत2024 के नवंबर 16 को लिखे गए इस ब्लॉग पोस्ट में LeetCode (लीटकोड) समस्याओं के समाधान, वीडियो निर्माण प्रक्रिया और भविष्य की योजनाओं (जैसे, elice.io पर अध्ययन) का विवरण दिया गया है।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 16, 2024

2024-11-18 जीवन में रुचि रखने वाली विविध सामग्री: मैं क्या करके आनंद लेता हूँ?यह ब्लॉग पोस्ट 18 नवंबर, 2024 को लिखी गई थी। इसमें लेखक के शौक, निवेश, शिक्षा आदि विभिन्न प्रकार के दैनिक जीवन और स्वचालन के माध्यम से कार्य कुशलता में वृद्धि पर विचार शामिल हैं।
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 19, 2024

[गैर-तकनीकी, डेवलपर के रूप में जीवित रहना] 14. नव नियुक्त डेवलपर अक्सर पूछे जाने वाले तकनीकी साक्षात्कार सामग्री सारांशनव नियुक्त डेवलपर साक्षात्कार में अक्सर पूछे जाने वाले तकनीकी प्रश्न (मेमोरी क्षेत्र, डेटा संरचना, डेटाबेस आदि) को संक्षेप में प्रस्तुत किया गया है। डेवलपमेंट इंटरव्यू की तैयारी में यह मददगार होगा।
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자
투잡뛰는 개발 노동자

April 3, 2024