考虑以下python程序:
import sys lc = 0 for line in open(sys.argv[1]): lc = lc + 1 print lc, sys.argv[1]
在我的6GB文本文件上运行它,大约2分钟即可完成。
问题: 是否可以更快?
请注意,以下情况需要相同的时间:
wc -l myfile.txt
因此,我怀疑我的疑问只是一个简单的“否”。
还要注意,我的真实程序正在做的事情不仅仅是计数行数,因此请给出一个通用的答案, 而不是 行数计数技巧(例如在文件中保留行数元数据)
PS:我将此问题标记为“ linux”,因为我仅对特定于linux的答案感兴趣。如果有答案,请随时提供与操作系统无关的答案,甚至与其他操作系统无关。
您无法获得比最大磁盘读取速度更快的速度。
为了达到最大磁盘速度,您可以使用以下两个技巧: