Улучшение производительности Aspose.PSD с использованием настраиваемого кэша

Улучшение производительности с помощью настраиваемого кэша

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

Настройка кэша

Когда процессу требуется временное хранение данных, это хранение выделяется в кэше. Кэш может находиться в памяти или на диске и устанавливается пользователем. Когда временные данные больше не нужны, выделенное место освобождается. Статистику выделенного пространства можно проверить в любое время. Как Aspose.PSD выделяет и использует кэши, можно настраивать. В этом разделе описаны различные настройки и их значения по умолчанию, а приведенные ниже фрагменты кода показывают, как они могут использоваться.

Установка места, где выделяется кэш

Чтобы настроить способ распределения пространства кэша, установите свойство CacheType. По умолчанию кэш выделяется в памяти, и когда в памяти больше нет места, он выделяется на диск. Это поведение захвачено режимом Auto. Режим Auto гибок и максимизирует производительность. Есть также другие режимы:

  • Режим CacheOnDiskOnly: выделение только на диск.
  • Режим CacheInMemoryOnly: выделение только в памяти.

Выбор режима CacheOnDiskOnly может привести к плохой производительности.

Установка размера кэша

Установите максимальное пространство (в байтах), которое может быть выделено на диске или в памяти, установив свойства MaxDiskSpaceForCache и MaxMemoryForCache соответственно. По умолчанию оба значения установлены на 0, что означает отсутствие верхнего предела.

Управление перераспределением кэша

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

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