我想跳过从^{
下面是一些代码:
def processLine(line):
#process something
print "result"
pool = Pool(processes = 8)
for line in sys.stdin:
lines.append(line)
if len(lines) >= 100000:
pool.map_async(processLine, lines, 2000)
pool.close()
pool.join()
当我不得不处理具有数亿行的文件时,python进程的内存会增加到几千兆字节。我该怎么解决?
谢谢你的帮助:)
您的代码有一个错误:
这要等到
lines
累积超过100000行。之后,pool.map_async
被调用到100000多行的整个列表中,每个额外的行都被调用。不清楚你到底想做什么,但是 如果不需要返回值,请使用
pool.apply_async
,而不是pool.map_async
。可能是这样的:是的,你说得对。有一些虫子
我是说:
我使用map_async是因为它有可配置的块大小,所以如果有很多处理时间很短的行,它会更高效。
相关问题 更多 >
编程相关推荐