这是一个基本的问题。我很好奇,在并行化代码时,xargs和gnu并行有什么不同?
有没有这样的用例,你会使用其中一种而不是另一种?
我之所以这样问,是因为我已经看到了并行化问题的答案,在这些问题中,使用这两种工具都被社区认为是可以接受的。
发布于 2020-06-22 19:15:18
Tl;dr: xargs更快,因为几乎没有任何开销(与GNU Parallel的~3ms/job相比,约为0.3ms/job)。GNU并行更安全,因为它采取了各种预防措施,所以您不需要担心(例如,并行运行的两个作业的输出不会混合)。GNU并行有很多xargs没有的特性。GNU并行需要Perl,而xargs不需要。xargs无处不在,GNU Parallel要求您使用--embed来确保它无处不在。
因此,一般来说:如果主要考虑的是避免开销(例如,如果您的作业每次运行都需要几毫秒)或避免安装Perl (例如,如果您的系统是嵌入式的,因此资源紧张),那么使用xargs (并根据您的输入/输出采取相关的预防措施)。
完全公开:我对GNU Parallel有既得利益。
https://stackoverflow.com/questions/62511239
复制相似问题