¿Por qué necesitamos complementos de C++ en Node.js?

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *