Node.js http请求通过子进程vs libcurl通过C子进程

时间:2017-12-02 02:40:40

标签: node.js libcurl

我有两个选项来运行子进程以向HTTP服务器发送请求。一个通过Node.js子进程通过内置节点支持或通过'请求来发出http请求。模块。另一个选择是使用libcurl api派生C子进程。主http服务器是一个Node.js服务器,它将分叉子进程。它可以分叉C可执行文件或Node.js可执行文件。

是否有人对这两个选项中涉及的性能问题进行了基准测试或了解。 C和Node.js编程技巧都可用。

1 个答案:

答案 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选项。

免责声明:我是包裹的作者