在Python中读取非常大的文件时提高速度

时间:2016-04-05 14:06:08

标签: python for-loop large-files python-multiprocessing cpu-speed

所以我正在运行多个函数,每个函数都从百万行.txt文件中取出一个部分。每个函数都有一个for循环,它遍历百万行文件的每一行。

它从这些行中获取信息,看它是否与其他2个文件中的信息匹配,一个约50,000-100,000行,另一个约500-1000行。我通过在其他2个文件中运行for循环来检查行是否匹配。一旦信息匹配,我将输出写入新文件,所有函数都写入同一文件。该程序每分钟可生产约2,500行,但运行时间会减慢。另外,当我运行其中一个功能时,它会在大约500分钟内完成,但是当我用23个其他进程执行它时,它每分钟只有2500个,为什么呢?

有谁知道为什么会这样?无论如何,我可以导入一些东西来使程序更快地运行/读取文件,我已经在使用with "as file1:"方法。

重做多进程可以更快地运行吗?

1 个答案:

答案 0 :(得分:0)

线程只能使用你的资源。 4核= 4个线程,具有完整的资源。在某些情况下,拥有更多线程可以提高性能,但事实并非如此。因此,请将线程数保持为您拥有的核心数。

此外,由于您具有对文件的并发访问权限,因此需要锁定此文件,这会使进程稍微减慢。

然而,可以改进的是你的代码来比较字符串,但这是另一个问题。