Javascript 使用Node.js调用子进程与从C调用子进程并创建C++;绑定到node.js的调用

Javascript 使用Node.js调用子进程与从C调用子进程并创建C++;绑定到node.js的调用,javascript,c++,c,node.js,Javascript,C++,C,Node.js,我想调用pdftotext来提取100000个文件的内容(我需要快速),那么,这两个实现中哪一个最快 实施1: 从node.js为每次提取创建子_进程: export default (file) => new Promise((resove, reject) => { const command = 'pdftotext' const args = ['-layout', '-enc', 'UTF-8', file, '-'] const process = spawn

我想调用pdftotext来提取100000个文件的内容(我需要快速),那么,这两个实现中哪一个最快

实施1:

从node.js为每次提取创建子_进程:

export default (file) => new Promise((resove, reject) => {
  const command = 'pdftotext'
  const args = ['-layout', '-enc', 'UTF-8', file, '-']
  const process = spawn(command, args)
  const stdout = []
  const stderr = []

  process.stdout.on('data', (data) => {
    stdout.push(data)
  })

  process.stderr.on('data', (data) => {
    stderr.push(data)
  })

  process.on('error', (error) => {
    if (error.code === 'ENOENT')
      error.message = 'pdftotext is not installed, so will be unable to extract the file content'
    reject(error)
  })

  process.on('close', () => {
    if (stderr.length)
      return reject(stderr.map(Error))
    resolve(stdout.join())
  })
}
实施2:

从C创建子进程,创建一个C++绑定,从节点调用JS/P>


--没有代码,因为我还在学习如何做--

进程调用代码很可能对性能没有本质的影响,文档处理的速度取决于pdftotext实现和磁盘io。因此,我想编写定制的流程启动程序是没有意义的。

最有可能的流程调用代码将对性能产生不必要的影响,文档处理的速度取决于pdftotext实现和磁盘io。因此,我想编写自定义进程启动程序是没有意义的。

是否可以将文件转换一次,例如使用命令行命令?不是真的,我需要像库一样使用它,我需要在主模块中导入它。是否可以将文件转换一次,例如使用命令行命令?不是真的,我需要像一个库,我需要在我的主要模块导入使用它。