Информация об изменениях

Сообщение Re[4]: Чтение из сети и обработка от 14.02.2022 10:49

Изменено 14.02.2022 13:03 tryAnother

Re[4]: Чтение из сети и обработка
Здравствуйте, qaz77, Вы писали:

Q>Идея со Sleep(20) — так себе.

Q>Поток не пробуждается сразу же по приходу хотя бы одного пакета.
Q>Представьте, что пакет приходит в первую мс слипа, а мы все равно спим еще 19 мс.
Q>Лучше для ожидания поступления данных использовать select.

такая актуальность и не требуется, обработка всех собранных за "такт" пакетов происходит пачкой, поток не прыгает в сон и не пробуждается без надобности
в случае обработки по приходу поток бы постоянно дергался (пакеты идут 20 К в секунду) полюсов не видно.

Q>Вторая проблема, если за время слипа придет слишком много пакетов, то возможна их потеря.

Q>Т.к. у сокета внутренний буфер конечного размера.

конечного, но с существенным запасом,
при потоке 20К в секунду за 20 мс придет 400 пакетов, а буфер у меня на ~4000
Re[4]: Чтение из сети и обработка
Здравствуйте, qaz77, Вы писали:

Q>Идея со Sleep(20) — так себе.

Q>Поток не пробуждается сразу же по приходу хотя бы одного пакета.
Q>Представьте, что пакет приходит в первую мс слипа, а мы все равно спим еще 19 мс.
Q>Лучше для ожидания поступления данных использовать select.

такая актуальность и не требуется, обработка всех собранных за "такт" пакетов происходит пачкой, поток не прыгает в сон и не пробуждается без надобности
в случае обработки по приходу поток бы постоянно дергался (пакеты идут 20 К в секунду) полюсов не видно.

Q>Вторая проблема, если за время слипа придет слишком много пакетов, то возможна их потеря.

Q>Т.к. у сокета внутренний буфер конечного размера.

конечно, но с существенным запасом,
при потоке 20К в секунду за 20 мс придет 400 пакетов, а буфер у меня на ~4000