Есть ли concurrency штраф с HttpUrlConnection?

77
7

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


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

спросил(а) 2021-01-25T16:43:15+03:00 4 месяца, 4 недели назад
1
Решение
63

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

ответил(а) 2021-01-25T16:43:15+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема