Bluebird promisify vs promisifyAll 想要从模块中承诺一种方法时的性能比较

Bluebird promisify vs promisifyAll Performance compare when want to promisification of one method from module

我想知道 bluebird promisify 与 promisifyAll 之间的性能差异。

我尝试了 bluebird promisify 和 promisifyAll 的性能测试。

但是在时间和内存方面我看不出有什么大的区别,我仍然认为 promisify 稍微快一点,内存占用更少。还是什么最好。

假设我只想为 1 个方法 renderFile 实现 ejs 模块的 renderFile 的 Promisification。

我有两个选择

const ejs = require('ejs');
const renderFile = Promise.promisify(ejs.renderFile, {context: ejs});

const ejs = Promise.promisifyAll(require('ejs'));

我通过

测试性能
console.time('A');
console.timeEnd('A');

console.log(process.memoryUsage());

请回答当我只想要一种方法的承诺时我应该使用什么。

你使用的是哪种promisification方法,完全不会影响promisified方法的性能。

当然,调用 promisify 比调用 promisifyAll 做的工作少,但由于两者都只会在程序启动期间调用一次,因此在实践中并不重要。