Moderne Computer verfügen neben einem großen, aber langsamen Hauptspeichersystem über mehrere Cache-Speicherschichten. In der Zeit, die zum Lesen oder Schreiben eines Bytes aus dem Hauptspeichersystem erforderlich ist, können Dutzende Zugriffe auf den schnellsten Cache-Speicher ausgeführt werden. Der tausendfache Zugriff auf einen Standort ist somit viel schneller als der einmalige Zugriff auf 1.000 (oder sogar 100) unabhängige Standorte. Da die meisten Anwendungen wiederholt kleine Speichermengen in der Nähe des oberen Bereichs des Stapels zuweisen und freigeben, werden die Positionen auf dem oberen Bereich des Stapels in enormen Mengen verwendet und wiederverwendet, so dass die überwiegende Mehrheit (99% + in einer typischen Anwendung) Stapelzugriffe können über den Cache-Speicher abgewickelt werden.
Im Gegensatz dazu müsste, wenn eine Anwendung wiederholt Heap-Objekte zum Speichern von Fortsetzungsinformationen erstellen und aufgeben würde, jede Version jedes jemals erstellten Stack-Objekts in den Hauptspeicher geschrieben werden. Selbst wenn die überwiegende Mehrheit solcher Objekte zu dem Zeitpunkt, an dem die CPU die Cache-Seiten, in denen sie begonnen hatten, recyceln wollte, völlig unbrauchbar wäre, hätte die CPU keine Möglichkeit, dies zu wissen. Infolgedessen müsste die CPU viel Zeit damit verschwenden, langsame Speicherschreibvorgänge mit nutzlosen Informationen durchzuführen. Nicht gerade ein Rezept für Geschwindigkeit.
In vielen Fällen ist es hilfreich zu wissen, dass eine an eine Routine übergebene Objektreferenz nach dem Beenden der Routine nicht mehr verwendet wird. Wenn Parameter und lokale Variablen über den Stapel übergeben werden und eine Überprüfung des Codes der Routine ergibt, dass keine Kopie der übergebenen Referenz erhalten bleibt, kann der Code, der die Routine aufruft, sicher sein, dass keine externe Referenz auf die Routine vorhanden ist Objekt existierte vor dem Aufruf, danach existiert kein Objekt mehr. Wenn hingegen Parameter über Heap-Objekte übergeben würden, würden Konzepte wie "Nach Rückkehr einer Routine" etwas nebulöser, da die Routine, wenn der Code eine Kopie der Fortsetzung aufbewahrt, nach a mehr als einmal "zurückkehren" könnte einzelner Anruf.