อัลกอริธึมการแทนที่ใดมีประสิทธิภาพมากที่สุด?

อัลกอริธึมการแทนที่ใดมีประสิทธิภาพมากที่สุด?
อัลกอริธึมการแทนที่ใดมีประสิทธิภาพมากที่สุด?
Anonim

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

FIFO หรือ LRU ไหนดีกว่ากัน

FIFO เก็บสิ่งที่ถูกเพิ่มล่าสุด LRU โดยทั่วไปจะมีประสิทธิภาพมากกว่า เนื่องจากมีรายการหน่วยความจำที่เพิ่มเพียงครั้งเดียวและไม่เคยใช้อีกเลย และยังมีรายการที่มีการเพิ่มและใช้บ่อยๆ LRU มีแนวโน้มที่จะเก็บรายการที่ใช้บ่อยไว้ในหน่วยความจำมากกว่ามาก

อัลกอริธึมการแทนที่หน้าใดมีประสิทธิภาพมากที่สุด

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

LRU หรือ MRU ไหนดีกว่ากัน

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

คืออะไรวิธีที่ดีที่สุดในการเลือกอัลกอริธึมการแทนที่หน้า

เมื่อเพจที่ถูกเลือกเพื่อแทนที่และเพจออกถูกอ้างอิงอีกครั้ง เพจนั้นจะต้องถูกเพจเข้า (อ่านจากดิสก์) และสิ่งนี้เกี่ยวข้องกับ รอการเสร็จสิ้น I/O. ซึ่งจะกำหนดคุณภาพของอัลกอริธึมการแทนที่เพจ ยิ่งเวลารอเพจอินน้อยลง อัลกอริธึมก็จะยิ่งดีขึ้น