Live with grace. Write superb software.

I just took for a test the native promises implementation (that is available since node v0.12), the bluebird implementation, and core-promise, my own TypeScript implementation.

The tests are here for the native, bluebird or core-promise. Note that all the implementations pass the full Promises/A+ test spectrum of 872 tests.

I ran each test file 11 times, using:

for f in `seq 0 10`; do time mocha test-core-promise.js > /dev/null 2>&1; done

Obviously, I changed the file name between iterations.

I removed 11.9 seconds, because these are setTimeouts in the actual tests, remaining with actual execution of promises time, and these are the final results (in seconds):


Native Bluebird Core-Promise

1.616 1.760 1.564

1.567 1.626 1.520

1.568 1.669 1.548

1.539 1.657 1.573

1.574 1.595 1.557

1.583 1.604 1.580

1.543 1.582 1.540

1.529 1.622 1.567

1.600 1.605 1.567

1.407 1.661 1.544

1.467 1.640 1.587



Unsurprisingly the native implementation won performance wise, but only less than 1% compared to the core-promise, but ~5% compared to bluebird. Also core-promise defaults to the native promises implementation if it's available, if you would use the exported Promise class (for tests I accessed the CorePromise implementation on purpose).

var Promise = require("core-promise").Promise;

Not to mention readability of code: core-promise's Promise vs bluebird's Promise.

*Disclaimer* I am the creator of the core-promise, and yes I feel pretty good getting better performance than the "unmatched performance" of bluebird. :)

Disqus Comments

comments powered by Disqus


The one to rule them all. The browsers that is.


SharpKnight is an Android chess game.


MagicGroup is an eclipse plugin.