आधुनिक कंप्यूटर में एक बड़ी, लेकिन धीमी, मुख्य मेमोरी सिस्टम के अलावा कैश मेमोरी की कई परतें होती हैं। मुख्य मेमोरी सिस्टम से एक बाइट को पढ़ने या लिखने के लिए आवश्यक समय में सबसे तेज़ कैश मेमोरी तक दर्जनों पहुंच बना सकते हैं। इस प्रकार, एक स्थान पर एक हजार तक पहुंचना 1,000 (या यहां तक कि 100) स्वतंत्र स्थानों पर एक बार पहुंचने की तुलना में बहुत तेज है। क्योंकि अधिकांश एप्लिकेशन बार-बार स्टैक के शीर्ष के पास छोटी मात्रा में मेमोरी आवंटित करते हैं और डील करते हैं, स्टैक के शीर्ष पर स्थित स्थान का उपयोग किया जाता है और एक विशाल राशि का पुनः उपयोग किया जाता है, जैसे कि एक विशिष्ट एप्लिकेशन में विशाल बहुमत (99% +) स्टैक एक्सेस का उपयोग कैश मेमोरी का उपयोग करके किया जा सकता है।
इसके विपरीत, यदि कोई अनुप्रयोग निरंतर सूचना को संग्रहीत करने के लिए बार-बार ढेर वस्तुओं को बनाने और छोड़ने के लिए था, तो कभी भी बनाए गए प्रत्येक स्टैक ऑब्जेक्ट के प्रत्येक संस्करण को मुख्य मेमोरी के बाहर लिखना होगा। भले ही सीपीयू उन कैश पेजों को रीसायकल करना चाहे, जहां तक वे शुरू कर चुके थे, तब तक ऐसी वस्तुओं का विशाल बहुमत पूरी तरह से बेकार हो जाएगा, सीपीयू को यह जानने का कोई तरीका नहीं होगा। नतीजतन, सीपीयू को बेकार की जानकारी लिखने की धीमी स्मृति प्रदर्शन करने में बहुत समय बर्बाद करना होगा। गति के लिए बिल्कुल नुस्खा नहीं।
एक और बात पर विचार करना है कि कई मामलों में यह जानना उपयोगी है कि रूटीन से बाहर निकलते ही किसी रूटीन के लिए पास की गई वस्तु संदर्भ का उपयोग नहीं किया जाएगा। यदि पैरामीटर और स्थानीय चर स्टैक के माध्यम से पारित किए जाते हैं, और यदि रूटीन कोड के निरीक्षण से पता चलता है कि यह पास-किए गए संदर्भ की एक प्रति नहीं रखता है, तो कोड जो रूटीन को कॉल करता है, वह सुनिश्चित कर सकता है कि यदि कोई बाहरी संदर्भ नहीं है कॉल से पहले मौजूद वस्तु, बाद में कोई भी मौजूद नहीं होगा। इसके विपरीत, यदि मापदंडों को ढेर वस्तुओं के माध्यम से पारित किया गया था, तो "एक नियमित रिटर्न के बाद" जैसी अवधारणाएं कुछ अधिक अस्पष्ट हो जाती हैं, क्योंकि यदि कोड निरंतरता की एक प्रति रखता है, तो दिनचर्या के लिए एक बार से अधिक बार "वापसी" करना संभव होगा। सिंगल कॉल।