Ở lần xấp xỉ đầu tiên, có một sự khác biệt về "địa phương" của việc truy cập bộ nhớ, khi một chương trình chỉ chạy về phía trước trên đống theo kiểu CPS, thay vì tăng và thu hẹp truyền thống. Cũng lưu ý rằng CPS sẽ luôn cần GC để khôi phục dữ liệu dường như cục bộ của bạn được đặt trên heap. Chỉ riêng những quan sát này đã có đủ 10 hoặc 20 năm trước, khi phần cứng đơn giản hơn nhiều so với ngày nay.
Bản thân tôi không phải là một chuyên gia về phần cứng cũng như trình biên dịch, vì vậy, gần đúng thứ hai, đây là một số lý do cụ thể cho khoảng. yếu tố 100 được thấy trong Isabelle / HOL:
Mất hiệu suất cơ bản theo "xấp xỉ đầu tiên" ở trên.
Quản lý heap SML / NJ và GC có vấn đề nghiêm trọng để mở rộng hơn vài chục MB; Hiện tại, Isabelle sử dụng 100-1000 MB thường xuyên, đôi khi là vài GB.
Quá trình biên dịch SML / NJ rất chậm - điều này có thể hoàn toàn không liên quan (lưu ý rằng Isabelle / HOL thay thế biên dịch thời gian chạy và mã chạy).
SML / NJ thiếu đa luồng riêng - không hoàn toàn không liên quan, vì CPS được quảng cáo là "cuộn các luồng của riêng bạn trong không gian người dùng mà không có ngăn xếp riêng biệt".
Mối tương quan của heap và chủ đề cũng được thảo luận trong bài báo của Morriset / Tolmach PPOPP 1993 "Procs and Khóa: Nền tảng đa xử lý di động cho ML tiêu chuẩn của New Jersey" ( CiteSeerX ) Lưu ý: PDF tại CiteSeerX bị lạc hậu, các trang từ 10- 1 thay vì 1-10.