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, bluebirdor 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:
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).
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. :)