Multithreading 递归与多线程区分文件夹
我需要比较两个目录结构,每个目录结构大约有10亿个文件(目录深度高达20个级别) 我发现通常的Multithreading 递归与多线程区分文件夹,multithreading,performance,shell,unix,diff,Multithreading,Performance,Shell,Unix,Diff,我需要比较两个目录结构,每个目录结构大约有10亿个文件(目录深度高达20个级别) 我发现通常的diff-r/location/one/location/two速度很慢 是否有多线程差异的实现?还是可以通过将shell和diff组合在一起?如果是这样,怎么做?您的磁盘将成为瓶颈 除非你在tmpfs上工作,否则你可能只会失去速度。也就是说: find -maxdepth 1 -type d -print0 | xargs -0P4 -n1 -iDIRNAME diff -EwburqN "D
diff-r/location/one/location/two
速度很慢
是否有多线程差异的实现?还是可以通过将
shell
和diff
组合在一起?如果是这样,怎么做?您的磁盘将成为瓶颈
除非你在tmpfs上工作,否则你可能只会失去速度。也就是说:
find -maxdepth 1 -type d -print0 |
xargs -0P4 -n1 -iDIRNAME diff -EwburqN "DIRNAME/" "/tmp/othertree/DIRNAME/"
在比较树方面应该做得相当不错(在本例中,
与/tmp/othertree
)
它现在有一个缺陷,它不会检测到中其他三个中不存在的顶级目录。我把它留给读者作为练习——尽管你可以很容易地反过来重复比较
xargs的参数-P4
指定最多需要4个并发进程
另外,请看,它在分离输出方面做得更好。我认为,使用GNUxargs(如图所示),您不能放弃-q
选项,因为它将混合差异(?) 很好,虽然这个小问题是很好的解决方案,谢谢!对于@hometoast或make-j或xjobs或。。。UNIX 1-tool-1-job工作原理:)