nodejs v8 新特性——利用N-API编写c++ node扩展

JavaScript011

nodejs v8 新特性——利用N-API编写c++ node扩展,第1张

相信为nodejs写过 c++扩展的人,都有过nodejs版本升级之后c++需要重新编译的惨痛经历。nodejs v8.0之后node官方推出了N-API 大大的解决了这一问题。

N-API 是独立于v8引擎之外的模块。用来向c++扩展程序提供接口,从而达到了c++扩展程序和v8引擎的隔离。因此在当nodejs版本变化之后c++扩展程序无需重新编译也能运行。

下面我们来看如何利用N-API为nodejs写一个简单的扩展:

我们的例子只从nodejs方面讲起。nodejs版本为8.x 。

首先安装 node-gyp 用来编译我们的扩展程序

V8是一个由美国Google开发的开源JavaScript引擎,用于Google Chrome中。

V8在执行之前将JavaScript编译成了机器码,而非位元组码或是解释执行它,以此提升效能。更进一步,使用了如内联缓存(inline caching)等方法来提高性能。有了这些功能,JavaScript程序与V8引擎的速度媲美二进制编译。

Node.js是一个基于Chrome V8 引擎的JavaScript 运行时。