我有一个 100Mb 的文件,其中包含大约 1000 万行,每次运行代码时都需要将其解析为字典。这个过程非常缓慢,我正在寻找加快速度的方法。想到的一个想法是解析文件一次,然后使用 pickle 将其保存到磁盘。我不确定这会导致加速。
任何建议表示赞赏。
编辑:做了一些测试后,我担心创建字典时会出现减速。酸洗似乎确实要快得多,尽管我不介意做得更好。
拉利特
根据我的经验, MessagePack在 python 中转储/加载数据比 cPickle 快得多,即使使用最高协议也是如此。
但是,如果您有一本包含 1000 万个条目的字典,您可能需要检查您是否没有达到计算机内存的上限。如果您用完内存并且必须使用交换,该过程会发生得更慢。
根据您使用数据的方式,您可以
您能否更好地了解您的数据是什么样的(结构)?
你是如何使用数据的?你真的在每次执行时都使用每一行吗?如果每次运行只使用一个子集,数据可以预先排序吗?