Pop*_*orn 3 memory performance grep disk hard-drive
我有一个10 TB的文件,里面有来自多本书的单词,我正在尝试grep一些不常见的字符串(没有正则表达式).例如:
grep "cappucino" filename
我想估计这需要多长时间.我不是真的在寻找它是否是正确的方法.当我打电话给grep时,我想了解更多关于幕后真正发生的事情.
如果我错了,请纠正我:
我使用机械硬盘驱动器,读取速度大约为200 MB/s,因此需要大约1000万/ 200 = 50000秒= 14小时才能完成.这是一个准确的估计吗?
最简洁的答案是不.
更长的答案是:这取决于.
更长的答案是:grep的性能取决于很多事情:
例如,我运行的是500MB/s的SSD(至少是制造商所说的),并且用一个非常短的模式(少量字符)来打印200MB的文件给了我:
随着808320
命中
real 0m1.734s
user 0m1.334s
sys 0m0.120s
Run Code Online (Sandbox Code Playgroud)
随着0
点击:
real 0m0.059s
user 0m0.046s
sys 0m0.016s
Run Code Online (Sandbox Code Playgroud)
@Edit:简而言之,请阅读Boyer-Moore :-)
@ Edit2:好好检查一下grep的工作方式,你应该检查源代码,我在上面描述了一个非常通用的工作流程.