系统应每秒接受一次测量。系统应呈现 6 个实时图:
- 最后一分钟
- 上一个小时
- 最后一天
- 上周
- 上个月
- 去年。
例如,这是一个漂亮的年度测量图,显示了一年中每个月的平均温度(假设该图由 12 个数据点组成,用直线连接)。我应该何时以及如何更新它?最坏的情况是在每次测量时重新计算每个月的平均温度(每秒一次),然后重新绘制绘图。
最后一分钟的情节我们用一个循环缓冲区解决 - 新的测量值被简单地推送到 deque eveyr 秒。
其他地块呢?我们如何最大限度地减少每一项的重新计算?
解决方案
保持所有向量的平均值。当新事件发生时,检查要更新的向量(时间 % vector_sample_period)。对于选择的向量,询问前一个向量的平均值并将其推入自己的循环缓冲区。