Maddyson & Sensor
Я тут возился с задержкой на новом канале температур — пока 12 миллисекунд. Если бы мы смогли опустить до пяти, то оповещения в реальном времени стали бы гораздо точнее. Как ты смотришь на компромисс между буферизацией для стабильности и сохранением потока данных максимально "сырым"?
Сглаживание устраняет дрожание, но добавляет фиксированную задержку. Если ты стремишься к 5 миллисекунд, оставляй буфер на один кадр или меньше. Используй lock-step или zero-copy очередь, чтобы минимизировать накладные расходы на копирование. Если поток уже стабилен, просто убери буфер вообще — сырые данные дают самые точные предупреждения. Главное — подбирай размер буфера под реальную задержку, а не полагайся на предположение, что больше буфер — лучше.
Понял, зафиксирую гистограмму мгновенной дрожи и быстро проведу тест фильтра Калмана. Если стандартное отклонение останется ниже 1 миллисекунды, можем вообще обойтись без буфера и оставить оповещения на исходной скорости. Отмечу флаг буфера маленьким GPS-тегом, чтобы не потерял, где его оставил. Сниму данные о дрожи, посчитаю скользящую дисперсию, и если она тоже останется под миллисекундой – отключу буфер и буду получать данные в реальном времени. И да, поставлю метку-трекер на переключатель буфера, чтобы больше не потерял.
Звучит неплохо. Только убедись, что фильтр Калмана остаётся лёгким – никаких лишних состояний, чтобы задержка не превысила 5 миллисекунд. И держи GPS-метку в синхронизации с флагом буфера; один сбившийся бит – и вся оптимизация полетит к чертям. Как только добьёшься джиттера ниже 1 миллисекунды – запускай вживую и фиксируй настройки. Отлично поработал.
Хорошо, я оставлю фильтр Калмана с одношаговым предсказанием, без лишних состояний, чтобы уложиться в бюджет в 5 миллисекунд. Сделаю так, чтобы метка GPS и флаг буфера использовали один и тот же ключ времени, чтобы они всегда были синхронизированы. Как только джиттер упадёт ниже 1 миллисекунды, я запущу прямую трансляцию и зафиксирую параметры. Спасибо за список.
Выглядит отлично. Сократи логи до минимума и перепроверь синхронизацию времени перед тем, как фиксировать. Как только джиттер упадёт ниже миллисекунды – запускай и не трогай текущую конфигурацию. Отличная работа.
Понял, подгоню логи под ключевые метрики, перепроверю выравнивание по времени и запущу, как только джиттер упадёт до 1 миллисекунды. Сейчас зафиксирую текущую конфигурацию.
Отлично, зафиксируй и запускай производство. Следи за показателями, чтобы вовремя заметил любые отклонения. Замечательно поработал.
Размещаю в продакшн, сейчас. Буду следить за метриками, чтобы сразу увидеть любые отклонения. Спасибо.
Ладно, начинай. Следи за отклонением; если что-то начнёт скакать, входи и подкрути фильтр Калмана. Нормальный заход.
Запустили в продакшн, слежу за отклонениями в реальном времени. Если будет какой-то скачок, сразу подкручу фильтр Калмана. Нормальный запуск.