为什么安装bufferUtil和utf-8-validate会大大提高Node.js中WS websocket库的性能?

时间:2017-05-30 01:14:36

标签: node.js npm websocket module

在阅读WS websocket库的documentation时,我注意到以下声明:

  

有两个可选模块可以与ws模块一起安装。这些模块是二进制插件,可以改善某些操作。预建的二进制文件适用于最流行的平台,因此您不必在计算机上安装C ++编译器。

npm install --save-optional bufferutil: Allows to efficiently perform operations such as masking and unmasking the data payload of the WebSocket frames.
npm install --save-optional utf-8-validate: Allows to efficiently check if a message contains valid UTF-8 as required by the spec.

果然,安装这些模块给了我更好的性能。我的问题是:为什么他们会产生如此巨大的差异?他们怎么样使图书馆更快?是因为它们是用C ++编写的吗?

1 个答案:

答案 0 :(得分:1)

简而言之:是的。

使用nodejs,您有两种模块:

C / C ++插件模块使用名为node-gyp的工具进行编译,并分发在扩展名为.node的文件中。在节点模块内,您可以require一个C / C ++ Addon模块,就像require常规Javascript模块一样:

const addonModule = require('addonModule.node);