在阅读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 ++编写的吗?
答案 0 :(得分:1)
简而言之:是的。
使用nodejs,您有两种模块:
C / C ++插件模块使用名为node-gyp
的工具进行编译,并分发在扩展名为.node
的文件中。在节点模块内,您可以require
一个C / C ++ Addon模块,就像require
常规Javascript模块一样:
const addonModule = require('addonModule.node);