ניהול קאש קל ומקצועי
-
למי יש ניסיון/ידע בתחום
מה שאני רואה שמייקרוסופט נותנים זה משהו מאוד דליל, פשוט להכניס מפתח וערך, הם למעשה מנהלים עבורי דיקשנרי, לא משהו יותר מזה.
לדוגמא אני חושב שחלק מניהול קאש זה לדעת כמה אני מחזיק נכון לעכשיו בזיכרון? אפילו את הדבר הזה ב C# לדעת מה המשקל של אובייקט בזיכרון זו משימה כמעט בלתי אפשרית. וכו' וכו'. -
תן צ'אנס למקרוסופט, הם פיתחו דברים מטורפים שכל אחד מהם אלמלא מישהו אחר היה יוצר רק אותו הוא היה קוצר תהילה רבה.
תבדוק טוב את הספריה הזו: MemoryCache.
היא משוכללת באמת, נותנת הרבה מעבר לסתם מפתח וערך.
אתה יכול להגביל את הגודל שלה בזיכרון עם המאפיינים
PhysicalMemoryLimitPercentage = אחוזים מהזיכרון במחשב.
CacheMemoryLimitMegabytes = גודל קבוע בMB.
הגדרת המאפיינים האלה נעשית באופן משונה ע"י KeyValueCollection כששם המאפיין מועבר כמחרוזת המפתח וההגדרה כערך מספרי. הגדרת המאפיינים האלה יכולה להיעשות בApp.config ובמקבילה Web.config.
המאפיינים האלה להבנתי לא מדוייקים אלא מוערכים, וגם פעולת ההסרה לא מתבצעת מייד כדי לא לפגוע בביצועים.לכל איבר שמכניסים יכולה להיות הגדרה של תפוגה קבועה, אירוע הסרה או אירוע ריענון (לא הבנתי מה זה),
והכי מעניין היה לי שאפשר לקבוע טריגר פקיעת תוקף ממערכת הקבצים (מוניטור על קובץ או קבצים, ברגע שהם משתנים הקאש מוסר) או SQL!
בקיצור לדעתי זה הדבר.
איך אפשר לדעת מה הגודל האקטואלי של כל הקאש וממה זה מורכב? אהממ לא מצאתי משהו רשמי.
פה יש מגוון של פתרונות וכנראה גם לינקים שימושיים: https://stackoverflow.com/q/22392634/1271037