משפר ביצועים עם מטמון שניתן להתאם
Aspose.PSD משתמשת במטמון לאחסון נתונים זמניים. המנגנון פשוט לשימוש, ניתן להתאמה אישית ושקוף. הוא מבטיח כי אין בעיות ביצועים בעת עיבוד התמונה. מאמר זה מסביר כיצד להתאים את המטמון עם API של Aspose.PSD עבור Java.
התאמת המטמון
כאשר תהליך זקוף צריך לאחסן נתונים זמניים, האחסון מוקצה במטמון. המטמון יכול להיות מרווח בזיכרון או בדיסק והגדרתו על ידי המשתמש. כאשר הנתונים הזמניים אינם נחוצים עוד, המרווח שחושב. ניתן לבדוק את הסטטיסטיקות של המרווח שהוקצה בכל עת. כיצד Aspose.PSD מקצה ומשתמש במטמונים ניתן להתאים. סעיף זה מתאר את ההגדרות השונות והמוגדרות ברירת מחדל שלהן והקיטמים של קוד מטה מראים ואיך ניתן להשתמש בהם.
הגדרת מיקום המטמון שהוקצה
כדי להתאים כיצד המרווח של המטמון מוקצה, יש להגדיר את מאפיין CacheType. כברירת מחדל, המטמון מוקצה בזיכרון וכאשר אין עוד מרווח זמין בזיכרון, הוא מוקצה לדיסק. התנהגות זו משודרת על ידי המצב הרכוש. המצב הרכוש הוא גמיש וממקסם את הביצועים. ישנם גם מצבים נוספים:
- מצב CacheOnDiskOnly: הקצאה לדיסק בלבד.
- מצב CacheInMemoryOnly: הקצאה לזיכרון בלבד.
בחירת מצב CacheOnDiskOnly עשויה לגרום למעצול בביצועים.
הגדרת גודל המטמון
ניתן להגדיר את המרווח המקסימלי (בבתים) שניתן להקצות על ידי הדיסק או הזיכרון על ידי הגדרת המאפיינים MaxDiskSpaceForCache ו-MaxMemoryForCache בהתאמה. לפי ברירת המחדל, שתי הערכות הללו מוגדרות כ-0, שפירושו שאין מגבלת גובה.
שליטה בשיבוץ מחדש של המטמון
אם אין מספיק מרווח זמין בזיכרון (כפי שצוין במאפיין MaxMemoryForCache) כאשר מוקצה מטמון חדש, המטמון מוקצה לדיסק. אם אין מספיק מרווח בדיסק, מתוקנת חריגה. תהליך הקצאת המטמון הולך מזיכרון לדיסק אך לא ההפך. המאפיין ExactReallocateOnly משמש לשליטה במחדש של הזיכרון. מחדש הקצאה סביר כי יתרוצץ עבור מטמונים שהוקצו מראש. זה יכול לקרות כאשר המערכת מבינה כי המרווח שהוקצה לא יהיה כדאי. אם ExactReallocateOnly מוגדר לערך ברירת המחדל, שהוא False, המרווח מוחדש לאותו מדיום. כאשר הוא מוגדר ל-True, המחדש לא יכול להעלות על המרווח המקסימלי שצוין. במקרה זה, המטמון שנמצא בזיכרון, המוקצה באופן רחון (שדורש מחדש קצאה), נשחרר ומרווח ההרחבה נמצא בדיסק.