bcryprasynchronous与同步node.js

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

bcrypt中的asynchronous操作似乎使用本地代码工作线程,它不会阻塞主节点.js线程。 在C ++源代码中看到这个例子。

确实,CPU时间是CPU时间,因此无论是同步还是asynchronous完成,都需要相同的CPU时间,但是由于asynchronous版本是在单独的线程上完成的,因此计算机可以使用多个核心同时运行或时间将其与主节点.js线程切片,以便主节点.js线程在执行encryption操作时不被阻塞。

这将使node.js线程访问更多的CPU时间,比如果crypto操作是同步完成的(因为crypto CPU时间从主node.js线程取下),因此node.js线程的性能优势只要有至less两个CPU核心可用。