Лучший способ поместить объект MagickImage в кеш

У меня есть два веб-сервера и много изображений на AWS S3. Я загружаю эти изображения из S3 как поток памяти и преобразую этот поток в растровое изображение. Затем я создаю объект MagickImage из этого растрового изображения и затем применяю к нему мои команды MagickImage.

Эти изображения являются своего рода шаблоном, который приложение использует их много раз в течение дня, может быть, 60 или более раз за один час из нескольких десятков из них. Преобразование растрового изображения в или даже прямое преобразование потока / потока памяти в MagickImage - это сложный процесс, занимающий время процессора.

Сейчас я поместил растровое изображение в кэш и удалил вызов S3; Я получаю поток памяти из кэша и преобразую его в растровое изображение. Это очень помогает, но недостаточно, моя система все еще страдает от производительности.

Теперь вопрос: когда я создаю объект MagickImage, как я могу его сохранить? Я должен найти способ удалить преобразование битовой карты в MagickImage.

Я знаю (возможно, я ошибаюсь), у меня есть два способа сохранить его: 1) поместить объект MagickImage в Cache, что не очень хорошая идея, потому что, поскольку я использую кэш вне процесса (потому что у нас есть два веб-сервера) Я должен преобразовать объект MagickImage в memoryStream, а затем, когда я хочу загрузить его из кэша, я должен снова преобразовать его обратно в MagickImage, который слишком медленный. 2) Я могу сохранить MagickImage как файл ".mpc", но эти файлы будут эффективны, если объект MagickImage был создан на той же машине. С двумя веб-серверами это не эффективно.

0 ответов

Другие вопросы по тегам