Должен ли я увеличить размер буфера для повышения производительности при повторных запросах GET? - PullRequest
0 голосов
/ 21 января 2012

Я пишу .NET-программу на C #, которая выполняет GET-запросы и загружает страницы для анализа - своего рода сканер.Я заметил, что он должен читать из потока несколько раз, чтобы загрузить каждую страницу, потому что каждая страница такая большая.

В настоящее время я установил размер буфера потока в 5024 байта.Мой вопрос: будет ли эффективнее увеличить этот размер и, следовательно, выполнять меньше потоковых чтений?Или лучше обрабатывать меньше данных за один раз, из которых можно выполнить синтаксический анализ?

По сути, иначе говоря - быстрее ли анализировать больше данных за один раз и нужно ли вызывать stream.read реже или наоборот??

Спасибо!

1 Ответ

0 голосов
/ 21 января 2012

Хотя, как правило, увеличение размера буфера и добавление большего количества данных за один раз приведет к увеличению скорости операции, увеличение производительности будет в лучшем случае минимальным. Я думаю, что вместо этого вы хотите попробовать асинхронный запрос. Что-то вроде это . Это позволяет приложению использовать пул потоков для чтения из сокета или нескольких одновременно, а затем работать с потоком только тогда, когда есть над чем работать. Это освобождает приложение от других действий, когда данные вытягиваются в буфер.

...