Google V8引擎的性能无用质疑,不过相对C/C++而言,还是有差距的,毕竟JavaScript是脚本语言。对于性能要求苛刻的可以考虑C++编写,本文介绍如何使用C++编写Node.js插件。
第一步、编写C++代码
1 // hello.cc 2 #include3 4 namespace demo { 5 6 using v8::FunctionCallbackInfo; 7 using v8::Isolate; 8 using v8::Local; 9 using v8::Object;10 using v8::String;11 using v8::Value;12 13 void Method(const FunctionCallbackInfo & args) {14 Isolate* isolate = args.GetIsolate();15 args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));16 }17 18 void init(Local
第二部、编写构建脚本building.gyp文件
{ "targets": [ { "target_name": "addon", "sources": [ "hello.cc" ] } ]}
第三部、编写package.json
可以通过npm init模板生成。
{ "name": "node", "version": "1.0.0", "description": "", "main": "test.js", "dependencies": {}, "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "install": "node-gyp rebuild" }, "author": "", "license": "ISC", "gypfile": true}
第四部、安装
npm install
系统需要安装python工具,下载地址:
第五步、测试运行
// hello.jsconst addon = require('./build/Release/addon');console.log(addon.hello()); // 'world'
完整代码参考: