增量写入磁盘

时间:2020-03-30 12:59:40

标签: python io

我想进行一些繁重的批处理,然后使用Python将结果写入内存。 由于我将写约3000万条记录,因此I / O变得很重要。我的策略是在类构造函数中一次创建文件句柄对象,然后在循环中调用f.write

我应该自己实现批处理逻辑,还是依靠write方法隐式采用的逻辑?

我可以观察到通过在输出上定期运行wc -l隐式发生了一些缓冲。它不是线性上升的,而是每约5分钟左右上升约2万行。因此,我只能假设一些批处理在内部进行。因此,我应该假设我的I / O已经优化吗?

或者,我可以:

  1. 将我的字符串附加到临时list上,直到达到一定的批处理大小
  2. 通过“ \ n”加入列表。join(l)并通过一次调用进行书写
  3. 清除列表,然后继续

我的逻辑比以前的概述要复杂得多,因为我的产生要写入的字符串的业务逻辑也在批处理模式下发生并且使用了GPU,这就是为什么我在尝试之前问上面是否值得的原因它。另外,如果您确实推荐这种方法,我将不胜感激地尝试在步骤1上进行批处理。我的RAM可以处理10万条记录,这是最佳选择吗?

0 个答案:

没有答案