用python记录实时数据的最快方法是什么,内存损失最少

2024-04-27 15:33:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在循环的每一步中,我都有一些数据,我希望这些数据最终保存在我的硬盘上

单向:

list = []
for i in range(1e10):
    list.append(numpy_array_i)

pickle.dump(list, open(self.save_path, "wb"), protocol=4)

但我担心:1_因为列表2_而耗尽了内存,如果某个东西崩溃,所有数据都将丢失。 因此,我还想到了一种实时保存数据的方法,例如:

file = make_new_csv_or_xlsx_file()
for i in range(1e10):
    file.write_in_a_new_line(numpy_array_i)

对于这一点,我也担心它可能不会这么快,也不确定最好的工具可能是什么。但openpyxl可能是一个不错的选择


Tags: 数据innumpynewforrangeopenarray
2条回答

我会尝试使用SQLite,因为它提供了磁盘上的永久存储(>;无数据丢失),但它比您的问题中所示的写入文件更快,并且提供了更简单的数据查找,以防您在上一次运行中有不完整的数据

调整JOURNAL_MODE可以进一步提高性能:https://blog.devart.com/increasing-sqlite-performance.html

写入redis相当快。您可以在第二个进程中读取redis,然后写入磁盘

相关问题 更多 >