通常,numpy已经将最少量的内存用于特定类型的N个数字列表,这些数字必须事先知道 - 这已经被使用了。
如果仍然不足以满足应用程序的内存要求,请考虑更改体系结构,以便收集设备本身不存储任何数据。
相反,它只能通过网络收集数据并将数据发送到外部服务进行存储和呈现。
有这样的标准服务 卡夫卡 和/或,根据用例,数据库如 InfluxDB 可以用作可视化仪表板的数据源 Grafana 。
为了保持当前的体系结构,最好在单独的线程中运行集合,以便在将当前数据保存到磁盘时继续收集。 Numpy是线程安全的并释放GIL所以这不是问题。
在这种情况下,设备必须能够存储足够的数据用于轮询时间+节省持续时间,因为应该删除要保存的数据,而轮询必须继续并在旧数据存储到磁盘时存储传入数据。