Разбор вложений MIME в "Служба с вложением" - PullRequest
1 голос
/ 21 октября 2011

У нас есть веб-сервис (так называемый «сервис с вложением»), где пользователи могут отправлять файлы со своими запросами. Пользователи могут загружать до 256 МБ файлов. У нас есть работающее решение, которое анализирует запрос и сохраняет файлы, но работает медленно. Иногда при отправке больших вложений - сервер возвращает таймауты.

Читаем запрос в байтах и ​​ищем граничные теги (--b5a8d09eeeb161be29def84633d6f6fc). Если тег найден, то проанализируйте заголовок и прочитайте файл вложения, закодированный в файл base64. Также есть проверка на символы новой строки.

По моему мнению, в этом коде много циклов, и это можно сделать лучше и улучшить производительность.

Есть ли замечательные примеры, как это сделать, и, возможно, разбор строки (не байтового массива) является более быстрым решением? Или, может быть, есть другие подходы? Что вы предлагаете сделать для улучшения производительности?

С уважением, evilone

Ответы [ 2 ]

0 голосов
/ 21 октября 2011

Хорошо, нашел ответ сам.Использование функций Streamreader и ReadLine() примерно на 40% быстрее, чем перебор отдельных байтов в массиве byte[].Если к запросам добавляется сжатие, как предложил Парин, то оно может быть быстрее.

0 голосов
/ 21 октября 2011

Может быть, вы попытаетесь сжать ваши вложения с помощью сжатия LZMA.

U можете загрузить его с http://www.7 -zip.org / sdk.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...