我有两个选项来运行子进程以向HTTP服务器发送请求。一个通过Node.js子进程通过内置节点支持或通过'请求来发出http请求。模块。另一个选择是使用libcurl api派生C子进程。主http服务器是一个Node.js服务器,它将分叉子进程。它可以分叉C可执行文件或Node.js可执行文件。
是否有人对这两个选项中涉及的性能问题进行了基准测试或了解。 C和Node.js编程技巧都可用。
答案 0 :(得分:0)
我建议第三种选择,直接为Node.js使用libcurl绑定:https://github.com/JCMais/node-libcurl
const { curly } = require('node-libcurl');
const { statusCode, data, headers } = await curly.get('http://www.google.com')
或更冗长的方式(没有承诺):
const { Curl } = require('node-libcurl');
const curl = new Curl();
curl.setOpt('URL', 'www.google.com');
curl.setOpt('FOLLOWLOCATION', true);
curl.on('end', function (statusCode, data, headers) {
console.info(statusCode);
console.info('---');
console.info(data.length);
console.info('---');
console.info(this.getInfo( 'TOTAL_TIME'));
this.close();
});
curl.on('error', curl.close.bind(curl));
curl.perform();
我已经做了一些基本的基准测试,它似乎是Node.js最快的URL客户端(但是基准测试总是要花些功夫)。它支持大多数libcurl选项。
免责声明:我是包裹的作者