Повишаване на производителността на Aspose.PSD чрез персонализиране на кеша

Подобряване на производителността с персонализиран кеш

Aspose.PSD използва кеширане за временно съхранение на данни. Механизмът е лесен за използване, персонализируем и прозрачен. Той гарантира, че няма проблеми с производителността по време на обработка на изображения. Тази статия обяснява как да персонализирате кеша с Aspose.PSD API за Java.

Персонализиране на кеша

Когато процесът изисква временно съхранение на данни, това съхранение се разпределя в кеша. Кешът може да бъде пространство в паметта или на диска и се задава от потребителя. Когато временните данни вече не са необходими, пространството се освобождава. Статистиката на разпределеното пространство може да се проверява по всяко време. Как Aspose.PSD разпределя и използва кешовете може да бъде персонализиран. Тази секция описва различните настройки и техните стойности по подразбиране, а кодовите откъски по-долу показват как могат да бъдат използвани.

Задаване на мястото, където се разпределя кешът

За да персонализирате начина, по който се разпределя кешовото пространство, задайте свойството CacheType. По подразбиране кешът се разпределя в паметта и когато вече няма свободно пространство в паметта, то се разпределя на диска. Това поведение се улавя от режима автоматично. Автоматичният режим е гъвкав и оптимизира производителността. Има също и други режими:

  • режим CacheOnDiskOnly: разпределение само на диска.
  • режим CacheInMemoryOnly: разпределение само в паметта.

Изборът на режим CacheOnDiskOnly може да доведе до лоша производителност.

Задаване на големината на кеша

Задайте максималното пространство (в байтове), което може да бъде разпределено на диска или в паметта, като зададете свойствата MaxDiskSpaceForCache и MaxMemoryForCache съответно. По подразбиране и двете стойности са зададени на 0, което означава, че няма горна граница.

Контролиране на преразпределението на кеша

Ако няма достатъчно свободно пространство в паметта (както е посочено от свойството MaxMemoryForCache), когато се разпределя нов кеш, кешът се разпределя на диска. Ако няма достатъчно място на диска, се хвърля изключение. Процесът на разпределение на кеша се премества от паметта на диска, но не и обратно. Свойството ExactReallocateOnly се използва за контролиране на преразпределението на паметта. Преразпределението вероятно се случва за предварително заделени кешове. То може да се случи, когато системата разбере, че заделеното пространство няма да бъде достатъчно. Ако ExactReallocateOnly е зададено на стойността по подразбиране, False, пространството се преразпределя в същата среда. Когато е зададено на True, преразпределението не може да надвишава максималното зададено пространство. В този случай съществуващият заделен кеш в паметта (който изисква преразпределение) се освобождава и се заделя допълнително пространство на диска.

Програмни примери