gpt4 book ai didi

node.js - shelljs 性能缓慢

转载 作者:太空宇宙 更新时间:2023-11-03 22:50:41 25 4
gpt4 key购买 nike

我一直在使用shelljs

在我的超快系统上,我执行以下操作:

var shell = require('shelljs')
const exec = require('child_process').exec

console.time('shell mktemp -d')
shell.exec('mktemp -d', {silent: true})
console.timeEnd('shell mktemp -d')

console.time('child exec mktemp -d')
exec('mktemp', ['-d'], function(error, stdout, stderr) {
if (error) {
console.error('stderr', stderr)
throw error
}
console.log('exec stdout', stdout)
console.timeEnd('child exec mktemp -d')
})

它给出以下执行时间:

shell mktemp -d: 208.126ms

exec stdout /tmp/tmp.w22tyS5Uyu

child exec mktemp -d: 48.812ms

为什么 shelljs 慢 4 倍?有什么想法吗?

最佳答案

您的代码示例将异步 child_process.exec()sync shell.exec() 进行比较,这并不完全是公平的比较。我想你会发现 shell.exec(..., { async: true }) 执行得更好一些:这是因为 sync shell.exec( ) 做了额外的工作来提供实时 stdio,同时仍然捕获 stdout/stderr/返回代码作为其返回值的一部分; async shell.exec() 可以免费提供相同的功能。

即使使用{silent: true},额外的工作仍然是必要的。 shell.exec() 构建于 child_process.execSync() 之上,仅返回 stdout。我们需要执行相同的额外工作才能返回返回代码和 stderr。

关于node.js - shelljs 性能缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46085639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com