2012-08-01 3 views
3

Django-imagekit, который я использую для обработки загруженных пользователем изображений на веб-сайте социальных сетей, использует неприемлемо высокий уровень памяти. Я ищу идеи о том, как обойти эту проблему.Использование памяти в django-imagekit неприемлемо - идеи по исправлениям?

Мы используем django-imagekit для копирования загруженных пользователем изображений в три предопределенных размера и сохраняем четыре копии (3 обработанных плюс 1 оригинал) в нашем ковше AmazonS3.

Эта операция быстро заставляет нас преодолевать пределы памяти на наших процессорах Heroku. На странице django-imagekit github я видел несколько предложений по взлому библиотеки, чтобы использовать меньше памяти.

Я вижу три варианта:

  1. Пытаться взломать Джанго-imagekit, и дело с вытекающими отсюда проблемами обновления с использованием модифицированной библиотеки третьей стороны
  2. использовать другую библиотеку обработки изображений
  3. ли что-то разные целиком - возможно ли изменить размер изображений в браузере? Или использовать стороннюю услугу? Или...?

Я ищу совет, на каком из этих маршрутов взять. В частности, если вы знакомы с django-imagekit или знаете/используете другую библиотеку обработки изображений в приложении Django, я бы хотел услышать ваши мысли.

Большое спасибо!

Клей

+1

Попробуйте изменить размер изображения с помощью PIL с консоли и посмотреть, хорошо ли используется память. Изменение размера изображения - простая задача, я не думаю, что вы должны использовать сторонние приложения. Кроме того, разделите задачу на 3 задачи (3 изображения?). –

+2

FWIW, django-imagekit использует git для управления версиями, поэтому вы можете просто разблокировать репо, внести изменения в вилку и вытащить из официального репо при каждом обновлении. Вероятно, вам все равно придется объединить несколько конфликтов здесь и там, но это упрощает процесс синхронизации ваших изменений с официальными изменениями. –

+1

@ AlexanderA.Sosnovskiy - Я использовал PIL, и использование памяти улучшилось. Если вы опубликуете свой комментарий в качестве ответа, я могу его принять. –

ответ

3

Попробуйте изменить размер изображения с PIL из консоли и посмотреть, если использование памяти в порядке. Изменение размера изображения - простая задача, я не думаю, что вы должны использовать сторонние приложения. Кроме того, разделите задачу на 3 задачи (3 изображения?).