我有一个10 TB的文件,其中包含来自多本书的单词,并且我正在尝试grep某些不常见的字符串(无正则表达式)。例如:
grep "cappucino" filename
我正在尝试估计需要多长时间。我并不是真的在寻找是否正确的方法。我想详细了解调用grep时实际发生的情况。
如果我错了,请纠正我:
我使用读取速度大约为200 MB / s的机械硬盘驱动器,因此大约需要一千万/ 200 = 50000秒= 14小时才能完成。这是一个准确的估计吗?
最简洁的答案是不。
更长的答案是:这取决于。
更长的答案是:grep的性能取决于很多因素:
例如,我在500MB / s的SSD上运行(至少这是制造商所说的),并以非常短的模式(很少的字符)对200MB的文件进行grep操作,可以得到:
有808320
点击
real 0m1.734s
user 0m1.334s
sys 0m0.120s
随着0
点击:
real 0m0.059s
user 0m0.046s
sys 0m0.016s
@Edit:简而言之,了解Boyer-Moore :-)
@ Edit2:很好地检查grep的工作方式,而应该检查源代码,我在上面描述了非常通用的工作流程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句