Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.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
在nodejs中使用本机代码的最佳方式是什么? 我正在开发一个应用NoDEJS/Engt的应用程序,它必须处理大量的数据,并在C++中编写了性能关键部分。既然应用程序的大部分已经完成,我仍然不确定调用C++代码的最佳方法。似乎最自然的方法是将它编译为一个共享库,然后从NoDEJS调用它,但对我来说,进程似乎是如此复杂,所以我想到让C++代码成为一个独立的可执行的监听端口号,然后从我的NoDjs应用程序向它发送TCP请求。_C++_Node.js_Sockets_Tcp_Electron - Fatal编程技术网

在nodejs中使用本机代码的最佳方式是什么? 我正在开发一个应用NoDEJS/Engt的应用程序,它必须处理大量的数据,并在C++中编写了性能关键部分。既然应用程序的大部分已经完成,我仍然不确定调用C++代码的最佳方法。似乎最自然的方法是将它编译为一个共享库,然后从NoDEJS调用它,但对我来说,进程似乎是如此复杂,所以我想到让C++代码成为一个独立的可执行的监听端口号,然后从我的NoDjs应用程序向它发送TCP请求。

在nodejs中使用本机代码的最佳方式是什么? 我正在开发一个应用NoDEJS/Engt的应用程序,它必须处理大量的数据,并在C++中编写了性能关键部分。既然应用程序的大部分已经完成,我仍然不确定调用C++代码的最佳方法。似乎最自然的方法是将它编译为一个共享库,然后从NoDEJS调用它,但对我来说,进程似乎是如此复杂,所以我想到让C++代码成为一个独立的可执行的监听端口号,然后从我的NoDjs应用程序向它发送TCP请求。,c++,node.js,sockets,tcp,electron,C++,Node.js,Sockets,Tcp,Electron,那么问题是:这会影响性能吗?这是一个糟糕的设计选择吗 谢谢您有几种选择: 将您的代码放入它自己的应用程序中,并找到一种方法来传递您希望它处理的内容(通过cmdline参数、文件、stdio、网络等),然后通过child_process模块从node.js运行它 使用将代码放入nodejs附加组件中,以便可以从nodejs中直接调用它 编译代码,并直接从nodejs中加载/运行该web程序集。如果您以前没有听说过web组装,那么它在Javascript引擎中是一个相当新的功能。像Rub或C或C

那么问题是:这会影响性能吗?这是一个糟糕的设计选择吗


谢谢

您有几种选择:

  • 将您的代码放入它自己的应用程序中,并找到一种方法来传递您希望它处理的内容(通过cmdline参数、文件、stdio、网络等),然后通过child_process模块从node.js运行它

  • 使用将代码放入nodejs附加组件中,以便可以从nodejs中直接调用它

  • 编译代码,并直接从nodejs中加载/运行该web程序集。如果您以前没有听说过web组装,那么它在Javascript引擎中是一个相当新的功能。像Rub或C或C++这样的语言将代码编译成Web组件目标。它有点像JavaScript引擎可以直接运行的低级、通用(非CPU专用)汇编语言,而其他类型化的语言,如Rub、C或C++,可以直接编译成它们编译成特定编译器目标的本机语言。然后,JS引擎获取该web程序集并将其动态编译为本地机器语言,同时添加一些内存访问保护措施

  • 所以我想让C++代码成为一个独立的可执行的监听端口号,然后从我的NoDjs应用程序向它发送TCP请求。 那就行了

    那么问题是:这会影响性能吗?这是一个糟糕的设计选择吗

    很难知道你的绩效目标是什么。您可能不希望在一个单独的服务器中快速调用数千次的操作,但如果调用频率低于此值,那么就可以了

    nodejs插件SDK允许您使用相当高带宽的Javascript接口,因为这与许多nodejs内置库的实现方式相同。了解它的工作原理需要更多的工作,因为如果您要在node.js中玩进程内游戏和垃圾收集,您必须以某种方式做很多事情(特别是处理内存或从Javascript传递数据的事情)。但是,它最终是与nodejsjavascript最紧密的连接