Le promesse native sono ancora più lente nel Node rispetto alle librerie come Bluebird? [chiuso]

4

Questa domanda si applica ancora: Perché l'ES6 nativo promette più lento e più memoria di bluebird? ?

Riguardo alle ultime versioni di Node.js ed EC7?

    
posta bloppit 25.09.2016 - 17:14
fonte

1 risposta

10

Si

Ho fatto alcuni test e sembra che a settembre 2016 Bluebird sia ancora molto più veloce.

Per i benchmark sul sito web Bluebird, vedi:

Ma è sempre meglio fare i tuoi test per il caso d'uso specifico di cui hai bisogno. Di seguito sono riportati i miei test per promesse molto profondamente annidate con un sacco di .then e new Promise() .

I miei test

Ecco i miei test:

native.js

var P = Promise;
var p = P.resolve('done');
for (var i = 0; i < 1000000; i++) {
  p = p.then(a => new P((res, rej) => res(a)));
}
p.then(console.log);

bluebird.js

var P = require('bluebird');
var p = P.resolve('done');
for (var i = 0; i < 1000000; i++) {
  p = p.then(a => new P((res, rej) => res(a)));
}
p.then(console.log);

Velocità

Sul nodo 5.12.0:

$ time node native.js
real    0m5.508s
user    0m5.040s
sys     0m0.385s

$ time node bluebird.js 
real    0m0.968s
user    0m0.861s
sys     0m0.071s

Sul nodo 6.5.0:

$ time node native.js
real    0m7.609s
user    0m7.362s
sys     0m0.260s

$ time node bluebird.js 
real    0m1.053s
user    0m1.033s
sys     0m0.053s

Memory

Sul nodo 5.12.0:

$ /usr/bin/time -v node native.js 2>&1 | grep Maximum
Maximum resident set size (kbytes): 886644

$ /usr/bin/time -v node bluebird.js 2>&1 | grep Maximum
Maximum resident set size (kbytes): 186940

Sul nodo 6.5.0:

$ /usr/bin/time -v node native.js 2>&1 | grep Maximum
Maximum resident set size (kbytes): 767832

$ /usr/bin/time -v node bluebird.js 2>&1 | grep Maximum
Maximum resident set size (kbytes): 187912

Sembra che le Promesse native stiano diventando più lente, semmai.

    
risposta data 25.09.2016 - 17:28
fonte

Leggi altre domande sui tag