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