Что делает схему на основе кучи медленнее схемы на основе стека?

Я разрабатываю компилятор для языка, подобного Scheme, и читаю тезис Дибвига. В нем он говорит, что большую часть своей производительности он достиг за счет размещения кадров вызовов в стеке, а не в куче. Есть несколько уловок, которые необходимо сделать, чтобы действительно заставить эту работу работать при наличии замыканий и продолжений.

У меня вопрос, откуда такое увеличение производительности? Это просто потому, что мы меньше нагружаем сборщик мусора?

Другими словами: предполагая, что у нас бесконечный объем памяти, будут ли выделенные стеком кадры вызовов по-прежнему работать быстрее, чем выделенные в куче кадры вызовов?

7
задан Andrew Barber 19 January 2012 в 00:45
поделиться