Python:使用os.fork更好的文件I / 0?

我的问题很简单:我有一个400MB的文件,里面有10,000,000行数据.我需要遍历每一行,做一些事情,并从内存中删除该行,以避免填充太多RAM.

由于我的机器有多个处理器,我最初的想法是优化这个过程是为了创建两个不同的过程.人们可以一次读取几行文件并逐渐填充一个列表(列表中的一个元素是文件中的一行).另一个可以访问这个相同的列表,并弹出()元素并处理它们.这将有效地创建一个从一侧增长而从另一侧缩小的列表.

换句话说,这个机制应该实现一个缓冲区,该缓冲区将不断地填充第二个进程来处理的行.但也许这并不比使用更快:

for line in open('/data/workfile', 'r'):

最佳答案 您可能受到磁盘速度的限制. Python已经进行了缓冲,因此逐行读取是有效的.

点赞