Является ли длинный опрос более эффективным, чем классический опрос? - PullRequest
0 голосов
/ 20 мая 2011

Почему для меня эффективнее держать http-соединение открытым до тех пор, пока не придет контент, а затем повторно открывать соединение, чем просто периодически открывать соединение?

Конечно, последний сценарий, возможно, более удачный или неудачный, но я спрашиваю просто с точки зрения эффективности использования ресурсов.

Ответы [ 2 ]

2 голосов
/ 20 мая 2011

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

1 голос
/ 20 мая 2011

Допустим, у вас в сокете заблокирован поток, ожидающий ответа.(Как в комете).В течение этого времени поток не запланирован ядром, и другие вещи на машине могут работать.Однако, если вы опрашиваете, поток занят короткими периодами ожидания.Это также добавляет задержку, потому что вы не будете знать о необходимости что-либо делать, пока не произойдет опрос.

...