bcrypr Async vs Sync node.js

时间:2015-11-25 00:29:03

标签: node.js asynchronous bcrypt

问题很简单,即使我们在node.js中使用与Bcrypt模块的异步模式,它仍然会用掉bcrypt循环的cpu吗?它不像数据库读取,它在别处执行,但CPU操作。那么为什么异步方法具有性能优势

1 个答案:

答案 0 :(得分:3)

bcrypt中的异步操作似乎使用本机代码工作线程,该线程不会阻塞主node.js线程。有关示例,请参阅here in the C++ source

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

这将使node.js线程访问的CPU时间比同步加密操作(因为加密CPU时间取自主node.js线程)更多,因此节点的性能优势.js线程,只要至少有两个CPU核心可用。