节点本机附加组件,取决于V8



我处于应用程序的早期设计阶段,并试图推理期望和要求,以确保我不会花费大量时间落后。我从来没有使用过V8或节点本机附加组件,所以请忍受。

假设我正在构建电子应用。由于性能原因,某些功能将以本机代码写入独立库中,该库将从本机节点附加组件中调用。本地库需要执行JavaScript。所以:

电子应用 ->本机加载 ->本机库 -> v8

首先,这是可行的吗?例如,由于其在电子V8上下文中的执行,试图构建/运行V8上下文失败吗?我在想僵局,中断等。

我想出了我的行动计划从评论到主要问题。不幸的是,这使得很难将任何特定用户或评论为答案。具体:

  • 重组数据流。允许本机附加组件使用其V8副本执行任何必要的JavaScript,而不是将其作为对本机库的依赖性。(评论)
  • 支持在另一个内部输入单独的V8隔离。(评论)(文档)

构思本机库组件是因为要支持的文档类型很大(文件大小),并且需要JavaScript处理和昂贵的渲染。最初,我认为这是支持文档类型的一个大型整体库,但实际上可以(可能也应该)分解。

  • 解析二进制文件。由于v8的速度,这可能可以在我的node.js应用本身中完成,并且可能比在语言障碍中提交数据更快。如果没有,我可能会考虑用于解析文档并返回代表解析数据的JS对象的N-API本机附加组件。(评论)
  • 执行文档级别的JavaScript。通过输入单独的V8分离株,应该在本机附加组件中可行。(请参见上文。)
  • 将文档渲染到画布/位图。这是一个未知数,因为它是通过绘制由复杂路径等的绘制性能来决定的。-api本地附加组件,例如SKIA作为渲染数据的依赖性。

最新更新