بهبود عملکرد Aspose.PSD با استفاده از حافظه نهان قابل تنظیم
بهبود عملکرد با حافظه نهان قابل تنظیم
Aspose.PSD برای ذخیرهسازی دادههای موقت از حافظه نهان استفاده میکند. این مکانیسم ساده برای استفاده، قابل تنظیم و شفاف است. این اطمینان را میدهد که هیچ مشکل عملکردی در هنگام پردازش تصویر وجود نداشته باشد. این مقاله توضیح میدهد که چگونه با استفاده از API Aspose.PSD برای .NET، حافظه نهان را سفارشیسازی کنیم.
سفارشیسازی حافظه نهان
هنگامی که یک فرآیند نیاز به ذخیره داده موقت دارد، این ذخیرهسازی در حافظه نهان اختصاص داده میشود. حافظه نهان ممکن است در حافظه یا روی دیسک فضایی باشد که توسط کاربر تعیین میشود. زمانی که دیگر نیازی به دادههای موقت نیست، فضا آزاد میشود. آمار فضای اختصاص دادهشده هر زمان قابل بازرسی است. چگونگی اختصاص دادن و استفاده از حافظه نهان توسط Aspose.PSD قابل سفارشیسازی است. این بخش تنظیمات مختلف و مقادیر پیشفرض آنها را شرح میدهد و قطعهکدهای زیر نشان میدهد که چگونه میتوانند استفاده شوند.
تنظیم جایی که حافظه نهان اختصاص داده میشود
برای سفارشیسازی نحوه اختصاص فضای حافظه نهان، ویژگی CacheType را تنظیم کنید. به طور پیشفرض، حافظه نهان در حافظه اختصاص داده میشود و زمانی که دیگر فضایی در حافظه در دسترس نیست، به دیسک تخصیص داده میشود. این رفتار توسط حالت خودکار گرفته شده است. حالت خودکار انعطافپذیر است و عملکرد را بیشینه میکند. همچنین حالتهای دیگری نیز وجود دارند:
- حالت CacheOnDiskOnly: تخصیص فقط به دیسک.
- حالت CacheInMemoryOnly: تخصیص فقط به حافظه.
انتخاب حالت CacheOnDiskOnly ممکن است منجر به عملکرد نامناسب شود.
تنظیم اندازه حافظه نهان
حداکثر فضای (به بایت) قابل تخصیص روی دیسک یا حافظه را با تنظیم ویژگیهای MaxDiskSpaceForCache و MaxMemoryForCache مشخص کنید. به طور پیشفرض، هر دو مقدار به 0 تنظیم شده است که به این معنی است که هیچ محدودیتی وجود ندارد.
کنترل مجدد حافظه نهان
اگر فضای کافی در حافظه در دسترس نباشد (همانطور که توسط ویژگی MaxMemoryForCache مشخص شده است) هنگام اختصاص حافظه نهان جدید، حافظه نهان به دیسک اختصاص داده میشود. اگر فضای کافی در دیسک نباشد، یک استثناء پرتاب میشود. فرآیند اختصاص حافظه نهان از حافظه به دیسک میرود اما بالعکس نه. ویژگی ExactReallocateOnly برای کنترل مجدد حافظه استفاده میشود. مجدد تخصیص احتمالاً برای حافظههای که پیشازمانه تخصیص داده شدهاند رخ میدهد. این ممکن است زمانی رخ دهد که سیستم متوجه شود که فضای تخصیصداده شده کافی نخواهد بود. اگر ExactReallocateOnly به مقدار پیشفرض، False، تنظیم شود، فضا به همان مدیم تخصیص داده میشود. زمانی که به True تنظیم شود، مجدد تخصیص نمیتواند حداکثر فضای تعیین شده را باز کند. در این حالت، حافظهنهان موجود در حافظه (که نیاز به مجدد تخصیص دارد) آزاد میشود و فضای توسعهیافته در دیسک اختصاص داده میشود.