【问题标题】:Advantages of node.js addon vs child_processnode.js 插件与 child_process 的优势
【发布时间】:2015-03-31 19:29:17
【问题描述】:

与通过 child_process 调用带有参数的二进制文件相比,使用 C/C++ 编写的 node.js 插件有哪些优势(如果有的话)?

更具体地说,我有一个小程序,它可能接受多达几百个参数并返回一个布尔值。

【问题讨论】:

    标签: node.js add-on child-process


    【解决方案1】:

    差别很大。

    C++ 插件 是作为主应用程序的一部分运行的本机代码(与 JS 处于同一级别)。但是如果你使用child_process,节点会启动一个新的进程,并且会有很大的开销(产生进程比在一个线程中运行本地代码要复杂得多)。

    如果您决定使用哪种方法,很大程度上取决于您的情况。如果您熟悉 C++ 并且想要处理数千个请求,您可能应该考虑编写一个插件。但是,如果您正在编写一个供个人使用的小型应用程序,并且您的附加程序已经可以作为独立应用程序运行,我会使用 child_process 并且它还可以以更少的努力提供很好的结果。

    【讨论】:

    • 这意味着插件将在主线程中运行,所以如果我想执行繁重的任务(这会影响 nodejs 异步环境),那么使用独立 C++ 的 child_process 将是要走的路吗?
    • @demiurgosoft 将其卸载到 libuv 工作线程以获得更好的性能。 stackoverflow.com/questions/11051070/node-js-c-addon-threading
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2011-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多