Узкое место в производительности обработки изображений ASP.NET

c# asp.net image-processing

128 просмотра

2 ответа

36 Репутация автора

Я занимаюсь разработкой веб-сервиса на ASP.NET. Одной из ключевых функций является загрузка некоторых фотографий (макс. 18) на сервер, после чего эти фотографии обрабатываются. У меня есть узкое место в производительности с изменением размера изображения. Когда я загружаю максимальное количество фотографий на сервер, загрузка ЦП приближается к 100%, поэтому все страницы на сервере не отвечают, пока обработка изображений не завершена. Я использую MS Azure (план приложения - S2) для размещения своего сервиса.

Итак, как организовать изменение размера изображения для предотвращения полной загрузки процессора?

Автор: Fred Mikhalkov Источник Размещён: 19.07.2016 08:24

Ответы (2)


1 плюс

149 Репутация автора

Вы можете изменить размер изображения на стороне клиента с JS. Это хороший пример: изменение размера изображения на холсте HTML5

Автор: Nick Размещён: 19.07.2016 08:41

0 плюса

766 Репутация автора

Я определенно рекомендую разместить обработчик загрузки в отдельном пуле приложений. Вы можете создать промежуточный слот для своего хостинг-плана Azure S2 и выполнять загрузку в него. Конечно, вам нужно установить обработчик загрузки на ваш новый хост. Таким образом, процесс загрузки не будет использовать ресурсы веб-приложений.

Большой трафик ( Out of Memoryзагрузка ) приведет к исключениям в отношении размера загрузки и доступной памяти на сервере. Помните, что сжатые файлы изображений выделяют намного больше памяти, чем сам файл ( иногда более чем в 10 раз ), когда вы ссылаетесь на них в своем приложении. Если вы предвидите, что столкнетесь с большими объемами трафика, вам следует загружать файлы непосредственно в хранилище больших двоичных объектов, например хранилище BLOB-объектов Azure (или Amazon S3 и т. Д.), Из клиентского браузера. Таким образом, вам не нужно беспокоиться о выделенной памяти для текущих загрузок. После завершения загрузки вам нужно вызвать другую конечную точку, которая обрабатывает изображения по мере необходимости.

Образец амазонок: ссылка

введите описание изображения здесь

Есть также некоторые продвинутые темы по этому вопросу. Проверьте здесь и здесь

Вы также можете использовать хорошо зарекомендовавшие себя инструменты для обработки изображений на вашем сервере. Они могут работать в 40 раз быстрее, чем встроенный в .NET GDI +. Проверьте ImageResizer .

Автор: Kerem Demirer Размещён: 09.11.2016 10:34
Вопросы из категории :
32x32