为什么安装bufferUtil和utf-8-validate会显著提高Node.js中WS-websocket库的性能?
在阅读WS-websocket库的时,我注意到以下语句: 有两个可选模块可以与ws-module一起安装。这些模块是改进某些操作的二进制插件。预构建的二进制文件可用于最流行的平台,因此您不必在机器上安装C++编译器。 果然,安装这些模块使我的性能大大提高。我的问题是:为什么它们会产生如此巨大的差异?他们怎么能让图书馆更快呢?这是因为它们是用C++编写的吗?简而言之:是的。 使用nodejs,您有两种模块:为什么安装bufferUtil和utf-8-validate会显著提高Node.js中WS-websocket库的性能?,node.js,npm,websocket,module,Node.js,Npm,Websocket,Module,在阅读WS-websocket库的时,我注意到以下语句: 有两个可选模块可以与ws-module一起安装。这些模块是改进某些操作的二进制插件。预构建的二进制文件可用于最流行的平台,因此您不必在机器上安装C++编译器。 果然,安装这些模块使我的性能大大提高。我的问题是:为什么它们会产生如此巨大的差异?他们怎么能让图书馆更快呢?这是因为它们是用C++编写的吗?简而言之:是的。 使用nodejs,您有两种模块: 用Javascript编写的常规NPM模块 C/C++插件模块使用名为node gy
- 用Javascript编写的常规NPM模块
node gyp
的工具进行编译,并在扩展名为.node
的文件中分发。在节点模块内部,您可以require
一个C/C++插件模块,就像您可以require
常规Javascript模块一样:
const addonModule = require('addonModule.node);
const addonModule = require('addonModule.node);