מטמון (Cache) הוא רכיב חומרה או תוכנה ששומר עותקים של נתונים שנמצאים במקום אחר או שחושבו קודם. הרעיון הוא לקרב את המידע למי שצריך אותו, כדי שאפשר יהיה להשיג אותו מהר יותר מאשר לגשת אל המקור האיטי או המרוחק.
המטמון מתווך בין "לקוח" (תוכנה או חומרה שזקוקה לנתונים) לבין מקור המידע. כשהלקוח מבקש נתון, הבקשה נשלחת למטמון. אם הנתון נמצא במטמון, זו פגיעה (cache hit), והוא מוחזר מיד ללא פנייה למקור. אם הנתון לא נמצא, זו החטאה (cache miss), המטמון מושך את הנתון מהמקור ושומר אותו למקרים הבאים.
לרוב למטמון נפח מוגבל, ולכן כשהוא מלא הוא צריך לפנות מקום. מדיניות ההחלפה (האלגוריתם שמחליט מה למחוק) חשובה מאוד. שיטה נפוצה היא LRU, Least Recently Used, שמוחקת פריט שלא נעשה בו שימוש הכי הרבה זמן.
כשלקוח כותב נתון, המטמון יכול לפעול בשתי דרכים: write-through, הכתיבה נשלחת מיד גם למקור, או write-back, הכתיבה נדחית עד שהפריט יירד מהמטמון. אם ישנם מקורות אחרים שיכולים לכתוב לאותו נתון בלי לעדכן את המטמון, העותק במטמון עלול להיות עבש (stale).
מעבדים מודרניים כוללים זיכרון מטמון מהיר וקיבולתו קטנה. המטמון מקטין את הצורך בגישה לזיכרון הראשי האיטי יחסית, ובכך מאיץ חישובים. בדרך כלל קיימות כמה רמות של מטמון במעבד, שכל אחת מהן קרובה ומהירה יותר. יש מעבדים זולים יותר שאינם כוללים את כל זיכרון המטמון, ובכך הופכים לפעמים לאיטיים יותר (לדוגמה: גרסאות מסוימות כמו Celeron של אינטל). כלים כמו Valgrind יכולים למדוד החטאות מטמון ולסייע במיטוב תוכנה.
מטמון בדיסק מאיץ את זמן הגישה לנתונים שנקראו או צפויים להיקרא לפי עקרון המקומיות (גישה לתכנים סמוכים). מאחר שהדיסק איטי משמעותית ביחס לזיכרון, הוספת מטמון בדיסק מקטינה את זמן הגישה הממוצע.
דפדפנים שומרים עותקים של דפי אינטרנט וקבצים על המחשב המקומי, כדי להציגם מהר יותר מאשר מהשרת. המטמון יכול להיות עבש אם האתר התעדכן. פרוטוקול HTTP מספק כלים לתיאום מטמון, כמו שליפה מותנית שבה השרת שולח תוכן רק אם הוא חדש יותר מהמעתק אצל הלקוח.
שירותים רבים משתמשים במטמונים: ה-DNS שומר תשובות אחרונות כדי לענות מהר יותר על בקשות חוזרות, בסיסי נתונים שומרים תוצאות שאילתות כדי להריץ אותן במהירות, ויש טכניקות כמו BranchCache שמאפשרות שיתוף קבצים בתוך רשת מקומית כדי לא להוריד שוב ושוב מהשרת החיצוני.
מטמון (Cache) הוא מקום שמחזיק עותק של מידע קרוב למי שצריך אותו. זה עושה את הגישה למידע הרבה יותר מהירה.
כאשר תוכנה או מחשב מבקשים מידע, הם שואלים קודם את המטמון. אם המטמון מכיל את המידע, זו פגיעה (ה-miss וה-hit הם מלים שמראות אם המידע היה או לא במטמון). אם אין את המידע, המטמון מבקש אותו מהמקור ושומר עותק.
למטמון יש מקום מוגבל. לכן כשצריך מקום חדש הוא מוחק משהו ישן. שיטה נפוצה היא למחוק את מה שלא השתמשו בו הכי הרבה זמן (LRU). כשמישהו כותב מידע, המטמון יכול גם לעדכן מיד את המקור או לשמור את השינוי רק בעצמו עד שיהיה צורך לפנות מקום. לפעמים העותק במטמון לא מעודכן, קוראים לזה עבש.
במעבד יש מטמון קטן ומהיר. הוא עוזר לעבד למצוא נתונים מהר בלי לחכות לזיכרון הגדול והאיטי.
גם בדיסק יש מטמון. הוא שומר קבצים או חלקים שקרובים זה לזה, כדי לקרוא אותם מהר יותר.
הדפדפן שומר דפים וקבצים במחשב. כך הדפים נטענים מהר יותר. לפעמים האתר מתעדכן והדפדפן עדיין מראה את העותק הישן.
שירותי אינטרנט ומחשבים אחרים משתמשים במטמונים. לדוגמה: שמירת שמות של אתרים (DNS) ושמירת תוצאות של מסדי נתונים. יש גם טכניקות שמחלקות קבצים ברשת מקומית כדי לא לחזור ולקרוא מהשרת החיצוני.
תגובות גולשים