En este artículo, veremos por qué necesitamos complementos de C++ en NodeJS.
- Los complementos de Node.js son objetos compartidos vinculados dinámicamente, escritos en C++.
- Se puede cargar en Node.js usando la función require() y también se puede usar como si fuera un módulo ordinario de Node.js.
- Se utiliza principalmente para proporcionar una interfaz entre JavaScript que se ejecuta en Node.js y bibliotecas C/C++.
¿Por qué necesitamos complementos de C++?
- Brinda la oportunidad de realizar cálculos intensivos, paralelos y de alta precisión.
- También brinda la oportunidad de usar bibliotecas C++ en NodeJS.
- Podemos integrar una biblioteca de terceros escrita en C/C++ y usarla directamente en NodeJS.
- El rendimiento de C++ es mucho mejor en valores o cálculos más grandes.
Requisitos previos:
- Conocimientos básicos de Node.
- Node.js instalado (versión 12+).
- Npm instalado (versión 6+).
Instalación del módulo: Instale el módulo requerido usando el siguiente comando.
npm i -g node-gyp
Estructura de carpetas: Se verá así.
Ahora cree el archivo binding.gyp,calculate.cc con el siguiente código.
Nombre de archivo: binding.gyp
{ "targets": [ { "target_name": "calculate", // Name of C++ Addons. "sources": [ "calculate.cc" ] // Source of C++ file. } ] }
calculate.cc
#include <node.h> #include <iostream> namespace calculate { using v8:: FunctionCallbackInfo; using v8 :: Isolate; using v8 :: Local; using v8 :: Object; using v8 :: Number; using v8 :: Value; // C++ add function. void Sum(const FunctionCallbackInfo<Value>&args) { Isolate* isolate = args.GetIsolate(); int i; double x = 3.141526, y = 2.718; for(i=0; i<1000000000; i++) { x += y; } auto total = Number::New(isolate,x); args.GetReturnValue().Set(total); } // Exports our method void Initialize(Local<Object> exports) { NODE_SET_METHOD(exports, "calc", Sum); } NODE_MODULE(NODE_GYP_MODULE_NAME,Initialize); }
app.js
// Require addons const calculate = require('./build/Release/calculate'); // Javascript add function. function calc() { // Two variables. let i, x = 3.141526, y = 2.718; for (i = 0; i < 1000000000; i++) { x += y; } let total = x; return total; } console.time('c++'); calculate.calc(); console.timeEnd('c++'); console.time('js'); calc(); console.timeEnd('js');
Paso para ejecutar la aplicación: Para compilar y configurar, ejecute el siguiente comando.
node-gyp configure build node app.js
Producción:
c++: 1.184s js: 1.207s
Publicación traducida automáticamente
Artículo escrito por _sh_pallavi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA