Мышечный гей минг за сотку

Привет бложик.

Я не особо любитель золотых проводов, но работая с беспроводной мышкой или клавиатурой ощущаю что "чот как-то не так" - где-то текст выделится не так, окно дропнется не туда, количество пробелов высрется не то, вот такого плана. Я предпочитаю купить самый дешевый логитек, но с проводом.

Я недавно в интернете вступил в спор с одним джентльменом который утверждал что разницы в латенси между проводной и беспроводной нет, или что её невозможно почувствовать. Предмет спора сформулирован был следующим образом "Латенси для беспроводной мышки в интервале между 0.01 и 99.99 персентилями будет укладываться в 10мс".
Не абсолютное значение а именно интервал - под абсолютное значение мышечная память быстро приспособится.
10мс было выбрано исходя из того что я знаю что 15мс это 1 фрейм, 1фрейм это вполне настоящее окошко ввода в некоторых файтингах и в играх типа осу или степмании. Люди вполне себе делают такие инпуты. Ну и я ничем не хуже, даже краше может - сидя в офисе на очке 40 часов в неделю себе мышечную память натренировал текст выделять.

Не суть важна сама беседа, но вобщем джентльмен изъявил желание отдать мне сотен если я докажу что интервал латенси больше 10, или я отдал бы ему сотен если бы латенси был меньше.

В качестве жертвы была взята вот такая мышь https://www.amazon.com/dp/B08W9CJKZP по настоянию моего визави, за 20 рефурбишд потому что изначально он предложил какую-то вундервафлю за 60 чем я был весьма возмущён.

В качестве бейзлайна была взята какая-то ноунейм проводная мышка которую мне с али прислали в комплекте с НВРом для видеокамер - чтобы видеть что эксперимент не совсем всрат, и мы чот правдоподобное измеряем.


Способ измерения был выбран следующий:
Элеторный ключ нажимает кнопку, юзерспейс ОС ловит нажатие как умеет.

Была собрана вот такая лаба из жёлудей:

Был написан вот такой скрипт:
https://paste2.org/J0ah4KXy

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

первый прогон дал вот такое распределение:

p99 24.05773; p1 1.11318. 99.99 даже смысле небыло измерять.
Для проводной я даже не делал график - там был чот в районе 15-20 на глаз. Сделал бы чарт если бы были +- похожие результаты по распределению, но так даже смысла не увидел.

С этими результатами я пришел за своим стольником. Мой визави не испытал восторга от перспективы морального унижения и возможности расстаться с деньгами, сказал что: "результаты ему не сильно нравятся". Я с пониманием решил отнестись к этой ситуации - мне бы тоже не понравились.

Он принёс https://www.rtings.com/mouse/1-2/graph#18873/12584 вот такой тест.


Я внимательно посмотрел что они делают и немного удивился - делают они вот так:

Т.е. они измеряет время между нажатием соленоида на пластинку. С одной стороны я понимаю их логику - они типа тестируют "эргономичность", с другой мне видится это очень спорным - связь между нажатием на пластинку и нажатием физической кнопки чот как-то слишком условная, это же физический мир - кнопка внутри мышки нажмётся гарантированно не одновременно, плюс как они там измеряют или избавляются от дрожания - даже с транзистором в реальном мире там не такой уж сильно бинарный сигнал если разобраться, а уж с касанием соленоидом контакта чот многовато переменных.

Но из важного я понял что у них измеряется время от тычка соленоидом до прихода сигнала в свисток где они снимают его усб дебагером, т.е. без ОС и юзерспейса.

У них результат стабильно меньше 5мс, у меня до 25мс - что же ещё может 20мс отожрать? Это дохера так-то.
Потыкал юзерспейс - успевает ли он там проснуться и обработать ивент. Успевает - если просто лупом читать там за 1мс успевает раз 300 проснуться и обработать.

Поискал чо там в ядре - нашел параметр usbhid.mousepoll=1

Для 70к ивентов:
Проводная мышка переехала в 10-15

Беспроводная показала вот такое распределение:

То что у распределения два пика была заметно ещё на прошлом эксперименте, но тут это прям очень явно.

Я решил посмотреть спектроанализатором:

Важно отметить что я живу в частном доме, да ещё и с металлическим сайдингом, так что у меня относительно мало шума на этих частотах, плюс свисток висел вполтную к скелету мышки.

Судя по всему она использует два относительно узких канала, и судя по всему иногда переезжает по своему усмотрению. Если внимательно посмотреть на распределение то заметно что для беспроводной мышки ивенты чередуются по латенси, пример:
1.95 быстрый
8.82 медленный
1.72 быстрый
9.64 медленный
1.53 быстрый
9.39 медленный
1.31 быстрый

Я бы списал это на кривой скрипт или плохой сетап эксперимента, но на проводной мышке таких спецэффектов нет.

Если подёргать свисток пару раз и сделать так чтобы оба канала попали "поправее" то получается недолго сделать распределение ~1-8мс.

Моя теория что там стоят два чипа и один из них подтупливает и один из этих каналов как-раз виноват в "медленной" части ивентов.

Алсо ради интереса я пробовал насрать в эфир с помощью sdr, распределение уехало в 0.5-15. К сожалению насколько сильно я насрал и что там мышка делала я затрудняюсь сказать - у меня радио не умеет в полный дуплекс.

Если просто произвольным файфаем эфир забить то мышка догадывается переехать, правда не особо оптимально:

По-честному в тепличных условиях моего дома получилось
0.01 0.52мс
99.99 11.13мс
т.е. 10.61мс.

По-хорошему если бы дальше разбираться, надо бы:
- попробовать вторую такую-же мышку (желательно не рефурбишед), не дефектная ли эта т.к. первую которую мне прислал амазон пришлось сдать - она была сломанная и не хотела спариваться со свистком
- внимательно почитать что там за чип на плате и посмотреть на его спеки детальнее

Но я решил сворачивать эксперимент т.к. за 10.5 сотку я уже врядли получу - слишком маржинально, а если дальше ковыряться буду то ещё может сотку и должен останусь.

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества