เมื่อการประมาณแรกมีความแตกต่างใน "locality" ของการเข้าถึงหน่วยความจำเมื่อ programm เพิ่งทำงานไปข้างหน้าบน heap ในสไตล์ CPS แทนที่จะเป็นแบบดั้งเดิมที่เพิ่มขึ้นและหดตัวของ stack โปรดทราบว่า CPS จะต้องใช้ GC เพื่อกู้คืนข้อมูลในเครื่องของคุณที่วางอยู่บนกองเสมอ การสังเกตเหล่านี้เพียงอย่างเดียวน่าจะเพียงพอเมื่อ 10 หรือ 20 ปีก่อนเมื่อฮาร์ดแวร์ง่ายกว่านี้มาก
ฉันเป็นทั้งกูรูด้านฮาร์ดแวร์หรือคอมไพเลอร์ดังนั้นเมื่อประมาณครั้งที่สองนี่เป็นเหตุผลที่ชัดเจนสำหรับการประมาณ ปัจจัย 100 ที่เห็นใน Isabelle / HOL:
การสูญเสียประสิทธิภาพขั้นพื้นฐานตาม "การประมาณการครั้งแรก" ด้านบน
การจัดการฮีป SML / NJ และ GC มีปัญหาร้ายแรงในการขยายขนาดเกินหลายสิบ MB ตอนนี้อิซาเบลใช้ 100-1000 MB เป็นประจำบางครั้งหลาย GB
การรวบรวม SML / NJ ช้ามาก - นี่อาจไม่เกี่ยวข้องทั้งหมด (โปรดทราบว่า Isabelle / HOL สำรองการคอมไพล์รันไทม์และรหัสที่ทำงาน)
SML / NJ ไม่มีมัลติเธรดแบบดั้งเดิม - ไม่เกี่ยวข้องอย่างสมบูรณ์เนื่องจาก CPS ถูกโฆษณาเป็น "ม้วนเธรดของคุณเองในพื้นที่ผู้ใช้โดยไม่มีสแต็คแยกต่างหาก"
ความสัมพันธ์ของ heap และเธรดยังถูกกล่าวถึงในบทความโดย Morriset / Tolmach PPOPP 1993 "Procs and Locks: แพลตฟอร์มมัลติโพรเซสซิงแบบพกพาสำหรับมาตรฐาน ML ของ New Jersey" ( CiteSeerX ) หมายเหตุ: PDF ที่ CiteSeerX ย้อนกลับหน้าจาก 10- 10- 1 แทน 1-10