tg-me.com/eshu_coding/74
Last Update:
Текст задачки из прошлого поста: Ecть буфер, из которого раз в секунду происходит попытка отправления 30 сообщений. Если сообщение еще не отправлено, он его не трогает, если уже отправлено - заменяет на новое и отсылает. Если поставить в тесте равномерное распределение времени ухода сообщения от 0 до 2 секунд, сколько должна быть средняя скорость отправки относительно ситуации, когда сообщения уходят мгновенно?
Напрашивается ответ: она должна составить 15 в секунду, т.е. 0.5 от максимума, что на практике оказалось неверно.
Рассмотрим работу отправителя сообщений по шагам:
1. Положили в буфер 30 сообщений, выдали команду "отправить"
2. Через секунду ушла половина сообщений - 15 штук, 15 штук остались зависшими, т.е. 50%. На место ушедших поставили новые, нажали "отправить"
3. В третий такт ушли оставшиеся 15 сообщений со стартовой загрузки и половина от помещенных в буфер в прошлый такт, т.е. в сумме 75%. Помещаем на их места новые, жмем "отправить".
4. В четвертый такт уходит 25% (хвост со 2 такта) + (75%/2 c 3 такта), т.е. всего - 62.5%. Их места занимают новые, отправляются.
5. В пятый такт уходил 37.5% остатков с 3 такта + половина с прошлого такта, итого 68.75%.
Надо будет воскресить в памяти тервер и сделать аналитическое решение для автотестов, чтобы было прям по феншую, но пока я удостоверился, что мой отправитель сообщений работает корректно. Поставил экспериментально измеренное ограничение в 0.7 от скорости в идеальных условиях (т.е. 21 в случае, описанном в задаче) и продолжил разбираться в ботах.
#телеграм
BY Эшу быдлокодит
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/eshu_coding/74