<返回更多

xargs命令如何加速

2022-11-08  今日头条  Paul
加入收藏

作为服务端的程序员,我们可能会经常需要通过查找日志来分析定位问题。由一个常见的场景引出下面要讲的内容,在一个目录下查找一个待匹配的字符串所在的行,来定位问题。很容易可以用一个命令搞定:

find . -name "*log*" |xargs grep "待匹配的字符串" {} >> res.txt

使用26个文件,每个大概300M,用time命令统计耗时6S,测试结果:

real	0m6.113s
user	0m2.096s
sys	0m4.003s

之前可能会写下这样的命令,也能work,但是从没想过其实还是可以加速的。无意间看到大牛的分享,于是决定仔细研究下。

  1. xargs —help 查看解释
-n, --max-args=MAX-ARGS      Use at most MAX-ARGS arguments per command
                               line
-P, --max-procs=MAX-PROCS    Run up to max-procs processes at a time

其中对于加速非常关键的两个参数-n -P

  1. 修改上面的命令
find . -name "*log*" |xargs grep -n 10 -P 10 "待匹配的字符串" {} >> res.txt
  1. 继续测试
real	0m1.716s
user	0m2.153s
sys	0m3.897s
  1. 总结
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>