मैं योजना के समान भाषा के लिए एक कंपाइलर विकसित कर रहा हूं, और डायबविग की थीसिस के माध्यम से पढ़ रहा हूं। इसमें, वह कहता है कि ढेर पर कॉल फ्रेम को आवंटित करके अपने अधिकांश प्रदर्शन लाभ को हासिल किया। वास्तव में इस काम को बंद करने और निरंतरता की उपस्थिति में करने के लिए कई चालें की जानी चाहिए।एक ढेर-आधारित योजना एक ढेर-आधारित योजना से धीमी गति से क्या बनाता है?
मेरा प्रश्न यह है कि यह प्रदर्शन लाभ कहां से आता है? क्या यह पूरी तरह से है क्योंकि हम कचरा कलेक्टर पर कम तनाव डालते हैं?
एक और तरीका रखें: मान लीजिए कि हमारे पास असीमित मात्रा में स्मृति है, आवंटित कॉल फ्रेम को ढेर करना अभी भी आवंटित कॉल फ्रेम ढेर से तेज होगा?
आप "कचरा कलेक्टर" का जिक्र करते हैं - आपकी कार्यान्वयन भाषा क्या है? –
मेरी कार्यान्वयन भाषा सी है लेकिन मुझे स्पष्टीकरण देना चाहिए, मेरा मतलब संकलित कोड के लिए प्रदर्शन लाभ था, * नहीं * संकलक के लिए प्रदर्शन लाभ। –
वास्तव में एक उत्तर दें लेकिन: (ए) ढेर से निपटने में अधिक समय लगता है क्योंकि इसे स्कैन करने की आवश्यकता होती है (यह स्टैक की तरह रैखिक नहीं है); (बी) व्यावहारिक रूप से सभी सीपीयू आर्किटेक्चर ने जितनी जल्दी हो सके स्टैक एक्सेस बनाने पर अतिरिक्त जोर दिया, और ढेर के साथ ऐसा नहीं। –