Как хранить динамические данные? Есть некоторое число которое обнавляется раз в секунду, нужно хранить его трое суток для отображения графика. Выводится среднее за последнюю минуту и оно отрисовывается в график. Подскажите как лучше хранить такие данные? Желательно что бы данные загружались после перезапуска программы. Подскажите как лучше хранить такие данные когда новые стирают старые и остается данных на заданное количество времени. Покадумаю использовать массив на все секунды за трое суток и по нему выстраивать график.

6 Мар 2021 в 19:49
128 +1
0
Ответы
1

Для хранения динамических данных, которые обновляются раз в секунду и должны храниться в течение трех суток, вы можете использовать циклический буфер (Circular Buffer). Циклический буфер это массив фиксированного размера, в котором новые данные перезаписывают старые данные по мере их добавления.

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

Для вычисления среднего значения за последнюю минуту, вы можете использовать данные из циклического буфера за последние 60 секунд.

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

Использование циклического буфера позволит вам эффективно хранить динамические данные и обновлять их в реальном времени для отображения графика.

17 Апр в 20:45
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 947 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир