Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Node.js C++;插件?_Javascript_C++_Arrays_Node.js_Node.js Addon - Fatal编程技术网

Javascript 在Node.js C++;插件?

Javascript 在Node.js C++;插件?,javascript,c++,arrays,node.js,node.js-addon,Javascript,C++,Arrays,Node.js,Node.js Addon,我正在开发一个Node.js插件/JavaScript编解码器,它利用一个基于C的库来处理编码/解码。这个插件非常快,除了一个方面。目前,解码数组的时间比其他实现(例如JSON.parse和MessagePack.decode)要长得多。我目前使用的方法如下: Create v8 Local<Array> result; for (i = 0 to #elements in encoded array) result->Set(i, decode(element));

我正在开发一个Node.js插件/JavaScript编解码器,它利用一个基于C的库来处理编码/解码。这个插件非常快,除了一个方面。目前,解码数组的时间比其他实现(例如
JSON.parse
MessagePack.decode
)要长得多。我目前使用的方法如下:

Create v8 Local<Array> result;
for (i = 0 to #elements in encoded array)
    result->Set(i, decode(element));
创建v8本地结果;
对于(i=0到编码数组中的#个元素)
结果->设置(i,解码(元素));

问题是
Set
需要很长时间,所以如果有人知道一种更快的方法让我完成这项工作,那将不胜感激。

我们在这里讨论的元素有多少?@mscdex可能很多。我应该澄清一下,编码的数组起源于
JavaScript数组
。因此,用户可以传入一个包含3个要编码元素的数组,即10000个。它存储为一个
ArrayBuffer
,并返回给JS程序。然后可以将
ArrayBuffer
传递回插件进行解码,在那里转换碰巧将其分解为元素(这是C库的一部分,不是我的直接实现)。我所负责的就是调用C库对每个元素进行解码,并返回一个等效的JS数组,该数组表示最初编码的元素。我们在这里讨论的元素有多少?@mscdex它可能有很多。我应该澄清一下,编码的数组起源于
JavaScript数组
。因此,用户可以传入一个包含3个要编码元素的数组,即10000个。它存储为一个
ArrayBuffer
,并返回给JS程序。然后可以将
ArrayBuffer
传递回插件进行解码,在那里转换碰巧将其分解为元素(这是C库的一部分,不是我的直接实现)。我所负责的就是调用C库来解码每个元素,并返回一个等价的JS数组,该数组表示最初编码的元素。