แฮสเคลมีเก็บขยะไหม

แฮสเคลมีเก็บขยะไหม
แฮสเคลมีเก็บขยะไหม
Anonim

ดังนั้น ในแง่นี้ การจัดสรรหน่วยความจำแบบไดนามิกอัตโนมัติจึงเป็นสิ่งจำเป็น และในทางปฏิบัติหมายความว่า: ใช่ Haskell ต้องใช้ตัวรวบรวมขยะ เนื่องจากการรวบรวมขยะเป็นระบบอัตโนมัติที่มีประสิทธิภาพสูงสุด ตัวจัดการหน่วยความจำแบบไดนามิก

Haskell มีที่เก็บขยะหรือไม่

ระบบรันไทม์ของ Haskell ใช้ เครื่องเก็บขยะรุ่น (GC) รุ่นที่สอง 2 รุ่นต่างๆ จะถูกนับโดยเริ่มจากรุ่นที่อายุน้อยที่สุดเป็นศูนย์ คุณค่าจะถูกจัดสรรในส่วนพิเศษของคนรุ่นใหม่ที่เรียกว่าเนอสเซอรี่เสมอ

ภาษาอะไรไม่มีการเก็บขยะ

ตัวอย่าง: Ada, C, Fortran, Modula-2, Pascal Bjarne Stroustrup คิดว่าการออกแบบภาษาที่ดีกว่าเพื่อให้ทุกค่าใช้จ่ายชัดเจน และ "ไม่ต้องจ่ายเงินสำหรับคุณลักษณะที่คุณไม่ได้ใช้" (ดูเอกสารของเขาในการประชุม ACM ครั้งที่ 2 และ 3 เกี่ยวกับประวัติของภาษาการเขียนโปรแกรม) ดังนั้น C++ ไม่มีการเก็บขยะ

เก็บขยะอะไร

การรวบรวมขยะ Java เป็นกระบวนการที่ โปรแกรม Java ดำเนินการจัดการหน่วยความจำอัตโนมัติ โปรแกรม Java คอมไพล์เป็น bytecode ที่สามารถรันบน Java Virtual Machine หรือเรียกสั้นๆ ว่า JVM เมื่อโปรแกรม Java ทำงานบน JVM ออบเจ็กต์จะถูกสร้างขึ้นบนฮีป ซึ่งเป็นส่วนหนึ่งของหน่วยความจำเฉพาะสำหรับโปรแกรม

ภาษา C มีการเก็บขยะหรือไม่

C ไม่มีอัตโนมัติการเก็บขยะ. หากคุณลืมติดตามวัตถุ คุณจะมีสิ่งที่เรียกว่า 'หน่วยความจำรั่ว' หน่วยความจำจะยังคงได้รับการจัดสรรให้กับโปรแกรมโดยรวม แต่จะไม่มีอะไรสามารถใช้งานได้หากคุณทำตัวชี้สุดท้ายหายไป การจัดการทรัพยากรหน่วยความจำเป็นข้อกำหนดหลักในโปรแกรม C