为什么NodeJS execSync()在执行自定义脚本时太慢

时间:2016-02-17 09:06:12

标签: node.js exec child-process

我正在进行客户端上必须同步的服务器到服务器通信。我最终使用了child_process.execSync()

现在的问题是execSync()执行node.js自定义脚本文件的速度太慢,例如:

// main.js
var res = execSync('node --version');
// TIME: 8 ms

虽然,有一个自定义节点脚本只打印出节点版本到stdout,如:

// script.js:
process.stdout.write(process.version);
process.exit();

然后:

// main.js
var res = execSync('node script.js');
// TIME: 135 ms !!!

这几乎是16倍。 我错过了什么?

1 个答案:

答案 0 :(得分:1)

我无法在我的系统上重现您的号码。这是在我的Macbook Pro,家用电脑上运行的。为main1.js调用第一个main.js,为main2.js调用第二个main.js,并在main1和main2的顶部添加var execSync = require('child_process').execSync;

$ time node main1.js
v5.3.0


real    0m0.099s
user    0m0.075s
sys 0m0.022s

$ time node script.js
v5.3.0
real    0m0.075s
user    0m0.058s
sys 0m0.015s

$ time node main2.js
v5.3.0

real    0m0.166s
user    0m0.131s
sys 0m0.031s

这些数字对我来说很好。