Javascript 使用Node.js调用子进程与从C调用子进程并创建C++;绑定到node.js的调用
我想调用pdftotext来提取100000个文件的内容(我需要快速),那么,这两个实现中哪一个最快 实施1: 从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
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。因此,我想编写自定义进程启动程序是没有意义的。是否可以将文件转换一次,例如使用命令行命令?不是真的,我需要像库一样使用它,我需要在主模块中导入它。是否可以将文件转换一次,例如使用命令行命令?不是真的,我需要像一个库,我需要在我的主要模块导入使用它。