NodeJS:本机插件与外部二进制文件的性能

我正在编写一个NodeJS服务器,除了存储其他数据之外,还需要对用户密码进行哈希处理,然后将其存储在数据库中。 由于创build安全哈希的math密集过程,以及需要完成的大量哈希处理,我select在C中对哈希处理进行编码。

我的问题是这样的:通过执行child_process.exec编码的哈希处理,而不是创buildNodeJS的本地插件,我添加了多less开销?

IE每次需要对一段数据进行散列处理时,我将需要以该段数据作为参数调用child_process.exec。

与仅在已有节点进程上执行代码相比,产生subprocess的开销很大。 这两个进程需要通过stdio进行连接和通信。 如果你想具体的,你将不得不自己testing你的用例。 一种testing方法是find一个本地散列库,并根据你的Csubprocess进行testing。

有了这个说法,除非每秒注册数百个用户,否则使用subprocess的性能开销是完全可以忽略的。 你甚至可以在节点上做散列,而且很可能不会注意到这种差异。

实际上,您应该只使用节点中包含的“encryption”模块,因为它已经是本地模块。

https://stackoverflow.com/a/17201493/3355076有一个简单的例子。