将数据从V8流进V8流出。

问题描述 投票:0回答:1

我有一个嵌入式V8引擎的C++应用,我想用V8用Javascript灵活地转换数据。数据量可能很大,而且来自不同的文件格式,所以每次只处理一条记录。如何让V8一次只处理一条记录的数据?

我正在考虑的2个方案是通过Accessors将C++记录流作为javascript对象来提供--但我不知道如何从一个C++对象中返回一个ArrayBuffer。

我想的另一个方案是使用v8-API为每个新记录创建一个新的ArrayBuffer,并将其绑定到同一个全局变量上--这样脚本就可以访问它。

什么是最有效的数据流?

v8 embedded-v8
1个回答
0
投票

这真的要看情况,有太多的选择...

你可以在JavaScript和你的嵌入之间共享一个单一的、长寿命的(Shared)ArrayBuffer,再加上一些通知机制。这样一来,你甚至可以获得并发性:JavaScript代码可以在一个线程中运行,嵌入器的其他部分在另一个线程中运行,你可以使用Atomics来发出信号 "请查看数组索引x到y","好的,x到y的结果已经准备好了 "等等。至少在某些假设下,这很可能会变成最高性能的方法。

你也可以在JavaScript代码中加入一些因子,这样你就可以简单地对每个记录调用一次函数并返回结果。这可能是最简单的方法,也可能足够快。

© www.soinside.com 2019 - 2024. All rights reserved.