Сообщение 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
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
Q>Идея со Sleep(20) — так себе.
Q>Поток не пробуждается сразу же по приходу хотя бы одного пакета.
Q>Представьте, что пакет приходит в первую мс слипа, а мы все равно спим еще 19 мс.
Q>Лучше для ожидания поступления данных использовать select.
такая актуальность и не требуется, обработка всех собранных за "такт" пакетов происходит пачкой, поток не прыгает в сон и не пробуждается без надобности
в случае обработки по приходу поток бы постоянно дергался (пакеты идут 20 К в секунду) полюсов не видно.
Q>Вторая проблема, если за время слипа придет слишком много пакетов, то возможна их потеря.
Q>Т.к. у сокета внутренний буфер конечного размера.
конечно, но с существенным запасом,
при потоке 20К в секунду за 20 мс придет 400 пакетов, а буфер у меня на ~4000