Существует ли штраф за параллелизм с HttpUrlConnection? - PullRequest
2 голосов
/ 12 октября 2011

У меня есть приложение большого объема, которое считывает данные из файлов, а затем обращается к внутреннему API (локальной сети) через POST с X числом записей из текущего файла. Я использую HttpUrlConnection, чтобы сделать вызов API. Без вызова API он работает очень быстро, но как только я добавляю вызов API, он сильно замедляется и, кажется, не масштабируется хорошо (например, в 8 потоках это быстрее, чем в 2, но производительность для каждого потока намного ниже).

При выполнении некоторых поисков оказывается, что базовая реализация, по-видимому, выполняет пул соединений (как правило, хорошая идея) и использует ConcurrentHashMap для пула в соответствии с Вопрос реализации HttpURLConnection . Стоит ли отключать пул соединений? Или увеличить размер пула?

1 Ответ

1 голос
/ 13 октября 2011

Проблема параллелизма может быть на стороне сервера, который предоставляет внутренний API. С самим HttpURLConnection проблем с параллелизмом нет, и работа с пулом и т. Д. Не поможет. Я даже не знаю, что вы можете изменить размер бассейна; это больше контролируется таймаутами простоя IIRC.

...