【问题标题】:NodeJS: Performance of Native Addon vs External BinaryNodeJS:本机插件与外部二进制文件的性能
【发布时间】:2017-01-26 03:39:19
【问题描述】:

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

我的问题是:我通过 child_process.exec 执行 C 编码的哈希过程而不是为 NodeJS 创建本机插件会增加多少开销?

I.E.每次需要对一条数据进行哈希处理时,我都需要调用 child_process.exec,并将该条数据作为参数。

【问题讨论】:

  • 我知道创建本机插件天生就具有更高的性能,我的问题是在资源开销/处理时间方面,本机插件与 child_process.exec 相比,假设等效功能是多少性能是正在执行。

标签: c node.js hash multiprocessing


【解决方案1】:

与仅在现有节点进程上执行代码相比,生成子进程的开销很大。两个进程需要通过stdio连接和通信。如果您需要详细信息,则必须自己针对您的用例进行测试。一种测试方法是找到一个本地哈希库,然后针对您的 C 子进程对其进行测试。

话虽如此,除非您每秒注册数百个用户,否则使用子进程的性能开销完全可以忽略不计。您甚至可以只在节点中进行散列,很可能不会注意到差异。

事实上,你应该只使用 node 附带的“crypto”模块,因为它已经是一个原生模块。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2014-06-04
    相关资源
    最近更新 更多