c++ - 将 C++ 双缓冲区传递给 Node Js(直接)[Node JS : V8 c++ : Nan]

标签 c++ node.js pointers v8 node.js-addon

我正在尝试将确定的 double 组从 C++ 传递回 Node JS。我现在这样做的方式有效,但它会降低性能。因为我需要将双缓冲区转换为 v8 数组。有没有办法直接将 double 传递给 Node JS 而无需转换?这是我希望避免使用的伪转换代码:

NAN_METHOD(getDoubles) {
    NanScope();

    .... calculate double array named:  double *VALS;
    .... collected elsewhere in my source. Then:

    int  len=6;
    Local<Array>  ARRAY  = NanNew<Array>(len);
    Local<Object> PARAMS = NanNew<Object>();
    for (i=0; i<len; i++)   {
      ARRAY->Set(i, NanNew<Number>(VALS[i]));
    }       
    PARAMS->Set(NanNew<String>("values"), ARRAY);
    NanReturnValue(PARAMS);
}

从 Node js,我像这样取回 double :

var addon = require("mycpp_addon");
var result = addon.getDoubles();
console.log(result.values);

最佳答案

当你想传递大数据时,你应该使用Buffer类。

关于 this page您可以在底部附近获得用法示例。

通过这种方式,您可以将一 block 内存传回 javascript 而无需进行任何复制。

关于c++ - 将 C++ 双缓冲区传递给 Node Js(直接)[Node JS : V8 c++ : Nan],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31323479/

相关文章:

node.js - 无法获取 Apple Pay 支付 session

Windows 给出 package.json 文件错误

C++ 指针。我想知道逻辑

javascript - 获取 API 。我从自己的 express 服务器收到一个空字符串

c++ - 对指针列表进行排序

c++ - "SafeArray"指针的

c++ - 如何使用 cmake 在我的代码中包含一个库?

c++ - g++在进行复制初始化时找不到正确的复制构造函数

c++ - 类型特征以检查参数包中的所有类型是否都是可复制构造的

c# - 将 ATL::CComBSTR 转换为 BSTR*