הנדסה אזרחית & הנדסה מבנית
מדריך מעשי ליישום Least בשימוש לאחרונה (לארו) מדיניות החלפת Cache
Table of Contents
יישום מדיניות החלפת ריאה של לRU מסייע אופטימיזציה של השימוש בזיכרון על ידי הסרת הפריטים הפחות לאחרונה גישה אליהם כאשר הטמון מגיע ליכולתו.מדריך זה מספק צעדים מעשיים לפתח שפם LRU בסביבות תכנות שונות.
להבין את האמת Cache
שפם LRU (Least בשימוש לאחרונה) ממשיך לעקוב אחר השימוש בפריט כדי לקבוע אילו נתונים לפטור כאשר יש צורך בחלל.זה מעדכנת פריטים שנעזרו לאחרונה, ולהבטיח כי לעתים קרובות השימוש בנתונים נשאר זמין.
המונחים: a LRU Cache
שפם יעיל של LRU משלב בדרך כלל שני מבני נתונים:
- (ב) ויקרא י"א: "ה' א'"א: "ה', ב'" (בראשית כ"ד)
- (ב) רשימת ה-Doubly Linked List:FLT:103) שומר על סדר השימוש בפריט, עם האחרון בחזית.
המונחים:
עקבו אחרי הצעדים האלה כדי ליישם שפם של אמת:
- מיפוי היש ורשימה מקושרת כפולת.
- על גישה לנתונים, להעביר את הפריט לחזית הרשימה.
- אם הטמון עולה על היכולת, להסיר את הפריט בסוף הרשימה.
- עדכון מפת היש בהתאם במהלך ההכנסות וההזרקות.
המונחים: Python
הנה דוגמה פשוטה של שפם של אמת ב- Python:
(ב) ,0) ,9: ⁇ : ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
⁇ python
מתוך אוספים ייבוא OrderedDict
RUCache:
def init (עצמי, יכולת):
עצמי:cache = OrderedDict()
קיבולת עצמית = יכולת
§ def Get (עצמי, מפתח):
אם המפתח לא ב-עצמי:
חזרה 1
עצמי.cache.move to end(key)
להחזיר את עצמו.
(עצמי, מפתח, ערך):
עצמי: cache = ערך
עצמי.cache.move to end(key)
אם len(self.cache) > קיבולת עצמית:
עצמי:cache.popitem (last=False)
⁇