在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
谢谢您有几种选择:
所以我想让C++代码成为一个独立的可执行的监听端口号,然后从我的NoDjs应用程序向它发送TCP请求。 那就行了
那么问题是:这会影响性能吗?这是一个糟糕的设计选择吗 很难知道你的绩效目标是什么。您可能不希望在一个单独的服务器中快速调用数千次的操作,但如果调用频率低于此值,那么就可以了 nodejs插件SDK允许您使用相当高带宽的Javascript接口,因为这与许多nodejs内置库的实现方式相同。了解它的工作原理需要更多的工作,因为如果您要在node.js中玩进程内游戏和垃圾收集,您必须以某种方式做很多事情(特别是处理内存或从Javascript传递数据的事情)。但是,它最终是与nodejsjavascript最紧密的连接