【发布时间】:2016-06-21 02:27:45
【问题描述】:
我正在使用 pdftotext 从多个 PDF 中并行提取文本,
混合使用child_process.spawn 和async.mapLimit 来限制并发数。
我的问题是关于性能的。我对 CPU 密集型工作有点迷茫。
我正在使用Node.js 打开进程,这意味着我正在执行 CPU 密集型操作
使用Node.js(因为这是他的子进程),或者我正在使用bash?
有什么方法可以提高性能吗?该程序通常需要几个小时才能完成一项工作,因为文件的数量 + 它们的大小。坦白说我对 bash 不是很了解,有什么可以改善并行处理的吗?
【问题讨论】:
-
或
xargs。这还取决于您的系统在 CPU/RAM/磁盘方面是否平衡良好,以及系统是否运行良好。如果您依赖 SAN 磁盘阵列,您需要确保它正常运行。 (对不起,我不能给你一个简单的测试,但是尝试对gzip -c 1GBfile > /mount/path/1/1GBfile.gz对你的/mount文件系统的许多子部分进行基准测试,并注意哪些比本地磁盘花费的时间要长得多。(这是一个多学科的主题部分杂志文章,所以戴上你的思考帽;-))。祝你好运。 -
您可以尝试使用 .exec .execFile 或 .fork 而不是 .spawn。我相信如果你有大型的单一任务,spawn 是最合适的。 dzone.com/articles/…
标签: node.js bash child-process pdftotext