Я согласен с @Michael Gantman в том, что не исправлю это.
Я бы сказал, что исправление или неисправление зависит от вашего профиля нагрузки.
Сохранять или не поддерживать связи?
Например, если вы отправляете 300 запросов сразу на 10 серверов, а после этого в течение часа ничего не делаете, то с точки зрения ресурсов нет смысла держать какие-либо TCP/IP-соединения. открывается (из-за использования HTTP/1.1) на целый час.
Однако, если вы разговариваете с сервером каждые 5 секунд, вы можете оставить соединение открытым. Кроме того, если вы хотите свести к минимуму задержки, устраняя многократное установление соединения, вы можете рассмотреть возможность сохранения соединений открытыми.
Для этого вы должны использовать HTTP/1.1. Вы можете найти множество примеров, например. DefaultHttpClient поддерживает соединение при нескольких запросах
Сколько связей сохранить?
Опять же, зависит от вашего профиля нагрузки. Вы сказали, что у вас есть 10 серверов. Если вы отправляете данные для одного сервера последовательно, то одного http-соединения на сервер с http/1.1 вполне достаточно. Однако, если вы хотите сделать что-то более быстрое (например, загрузить два изображения параллельно), вы можете открыть несколько соединений с одним и тем же сервером. (Конечно, это означает, что ваше приложение действительно многопоточное.)
Заключение
Если это не критичное по времени приложение, проще всего ничего не объединять, а просто обращаться к серверам, когда у вас есть данные для отправки. Вы можете начать чрезмерно оптимизировать это и бороться за 10 мс улучшения ценой серьезной случайной сложности.
person
Gee Bee
schedule
14.03.2016