c - Node : Performance of Native Addon vs External Binary

标签 c node.js hash multiprocessing

我正在编写一个 NodeJS 服务器脚本,该服务器需要在将用户密码和其他数据存储到数据库之前对其进行哈希处理。由于创建安全哈希的数学密集过程,以及需要完成的大量哈希,我选择用 C 语言编写哈希过程。

我的问题是:通过 child_process.exec 执行用 C 编码的散列过程与为 NodeJS 创建 native 插件相比,我增加了多少开销?

即每次需要对一段数据进行哈希处理时,我都需要使用该段数据作为参数调用 child_process.exec。

最佳答案

与仅在现有 Node 进程上执行代码相比,生成子进程的开销很大。两个进程需要通过stdio连接和通信。如果您想要具体细节,则必须针对您的用例自行测试。一种测试方法是查找 native 哈希库,并针对您的 C 子进程对其进行测试。

话虽如此,除非您每秒注册数百个用户,否则使用子进程的性能开销完全可以忽略不计。您甚至可以只在 Node 中进行哈希处理,很可能不会注意到其中的区别。

事实上,您应该只使用 Node 中包含的“crypto”模块,因为它已经是一个原生模块。

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

关于c - Node : Performance of Native Addon vs External Binary,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41859870/

相关文章:

node.js - Firefox 无法打开子域

javascript - ExpressJS 应用程序中的 CSS 和 JS 文件出现 404 错误

mysql - 如何将数据库记录存储到哈希 ruby​​ on rails

python - 在 Python 中加盐和散列密码

c - 解决数谜谜题

c - Clang 编译器的 C 枚举的数据类型是什么?

javascript - 客户端等待服务器 promise 解决

javascript - 如何使用javascript刷新网页?

android - 无法使用 android ndk 使图像变灰

编译器错误导致 execve 失败?