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
做的工作少,但由于两者都只会在程序启动期间调用一次,因此在实践中并不重要。
我想知道 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
做的工作少,但由于两者都只会在程序启动期间调用一次,因此在实践中并不重要。