2

在具有 47,000 个条目的文件上运行以下命令需要 24 分钟(8 核 windows 7,运行 Cygwin):

cat File_Path.txt | parallel --progress --tag -j +0 'pdftotext {} 2>/dev/null - | wc -w;' > results.txt

我将每一行File_Path.txt从 pdf 转换为文本文件并计算其中的单词。有什么办法可以缩短处理时间吗?

4

1 回答 1

2

我在 148 个随机 PDF 文件上运行了您的脚本。这需要 41 cpu 秒 = 每个文件 0.27 cpu 秒。因此,您应该期待的粗略估计是在 8 核机器上大约 1700 秒,这也是您所看到的。因此,我假设您在 24 分钟内看到 100% 的 CPU 利用率。

GNU Parallel 每个作业花费的时间不到 0.01 秒,因此大部分时间都花在了运行 pdftotext 上。因此,您将通过使用比 pdftotext 更快的工具获得最大收益。不幸的是,我不知道这样的工具。

- 编辑 -

如果您可以通过 ssh 访问其他服务器,也可以使用它们的 CPU。有关如何执行此操作,请参阅教程http://www.gnu.org/software/parallel/parallel_tutorial.html#remote_execution 。

于 2013-10-02T01:47:50.190 回答