แก้ไขลวดลายจุดเชื่อมต่อStencils
คําแนะนําที่ใช้ได้จริงในการทําให้การแทนที่ข้อมูลน้อยที่สุดที่ใช้เมื่อเร็ว ๆ นี้ (lru) ข้อกําหนดการแทนที่แคช
Table of Contents
การเติมข้อมูลการแทนที่แคชของ LRU ช่วยเพิ่มการใช้งานหน่วยความจําให้เหมาะสมที่สุด โดยการลบรายการที่เพิ่งเข้าใช้เมื่อแคชบรรลุความสามารถ มัคคุเทศก์นี้จะให้ขั้นตอนการพัฒนาแคช LRU ในสภาพแวดล้อมโปรแกรมต่าง ๆ
การเข้าใจแคชของ LRU
LRU (ใช้ล่าสุด) แคชเก็บบันทึกการเรียกใช้รายการเพื่อตรวจสอบว่าจะใช้ข้อมูลใดในการไล่ข้อมูลออกเมื่อต้องการพื้นที่ ซึ่งจะมีความสําคัญมากในการเข้าใช้เมื่อเร็ว ๆ นี้ จึงทําให้มั่นใจว่ามีข้อมูลที่ใช้บ่อย ๆ ที่ยังเหลืออยู่
ส่วนประกอบหลักของแคช LRU
แคช LRU ที่มีประสิทธิภาพ โดยปกติแล้ว จะรวมโครงสร้างข้อมูลสองแบบเข้าด้วยกัน:
- [FLT: 0] แผนที่: จัดทําการเข้าถึงรายการแคชข้อมูลอย่างรวดเร็ว
- [FLT: 0] รายชื่อที่อยู่เชื่อมโยง: รักษาลําดับการใช้งานของรายการ โดยมีรายการล่าสุดที่ด้านหน้า
ขั้น ตอน การ หมด กําลัง
ปฏิบัติตามขั้นตอนเหล่านี้เพื่อใช้แคช LRU:
- เริ่มแผนที่แฮช และรายการเชื่อมโยงคู่
- ในการเข้าถึงข้อมูล ให้ย้ายรายการไปด้านหน้าในรายการ
- หากแคชเกินความจุ ให้ลบรายการที่ท้ายรายการ
- ปรับปรุงแผนที่แฮชตามระหว่างการแทรกและการลบ
การ เพิ่ม ความ รู้ แบบ ตัว อย่าง ใน ภาษา ไพ โอ เนียร์
นี่เป็นตัวอย่างของแคช LRU ใน Python:
[FLT: 0] Note: รหัสนี้ใช้โมดูลสะสมสําหรับลําดับ digit ซึ่งทําให้ระเบียบง่ายขึ้น
''Python
จากลําดับการนําเข้าของคลัง
การ ปวด หลัง ใน ชั้น:
ถอน หมายเลข [( ตัวเอง, ความสามารถ):
ด้วยตนเอง. kche = assideddict ()
ตัวเอง. ความจุ = ความจุ
การเพิกถอน(ตัวเอง, กุญแจ):
ถ้ากุญแจไม่อยู่ในตัวเอง
กลับค่า - 1
ด้วยตนเอง.cache. ย้าย สิ้นสุด (คีย์)
กลับไปหาตัวเองเถอะ
ลบใส่ค่า
ตัวเอง. kche [คีย์] =ค่า
ด้วยตนเอง.cache. ย้าย สิ้นสุด (คีย์)
หาก len(ตัวเอง). cachche) & gt; ด้วยตนเอง.capaccess:
ตัวเอง.cache. pop item (ast=false)
''