node.js - bcrypr 异步与同步 Node.js

标签 node.js asynchronous bcrypt

问题很简单,即使我们在node.js中使用带有Bcrypt模块的异步模式,它是否仍然会在bcrypt周期中耗尽CPU?它不像在其他地方执行的数据库读取,而是 CPU 操作。那么为什么异步方法具有性能优势

最佳答案

bcrypt 中的异步操作似乎使用 native 代码工作线程,该线程不会阻塞主 Node.js 线程。请参阅here in the C++ source举个例子。

确实,CPU 时间就是 CPU 时间,因此无论是同步还是异步,都会花费相同的 CPU 时间,但由于异步版本是在单独的线程上完成的,因此计算机能够使用多个内核并发运行或与主 Node.js 线程进行时间切片,以便在执行加密操作时不会阻塞主 Node.js 线程。

与同步完成加密操作相比,这将使 Node.js 线程获得更多的 CPU 时间(因为加密 CPU 时间从主 Node.js 线程中扣除),因此只要有至少两个可用的 CPU 核心,Node.js 线程就会具有性能优势。

关于node.js - bcrypr 异步与同步 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33906479/

相关文章:

javascript - Node.js 中的异步递归

php - Bcrypt 比 md5 + salt 好在哪里?

node.js - 使用 Angular 和 NodeMailer 发送电子邮件

JavaScript Express 返回空 JSON

javascript - jQuery:如何让 ajaxSend 在继续之前等待另一个 Ajax 响应?

android - 从 Retrofit 2.0 的 Async 获取数据

node.js - Postgre 的 BeforeCreate 钩子(Hook)不使用 bcryptjs 对密码进行哈希处理

javascript - Node bcrypt 的比较总是返回 false

node.js - 将 stripe 与 Node 结合使用

node.js - 在 AWS 上部署 React Web 应用程序