I've modified the tests a little to be more like-for-like, added some alternative async/await implementations, and put them up on my github (can't link because I'm newly registered) My main takeaways are: The blocking promise version is now ~30% slower than the parallel one. Parallel promises and async/await appear to be about 3.4-3.7x slower than the parallel callback version on my machine. Take the results with a massive pinch of salt since runtime variance is about 200ms for some reason. This is a much older machine running Windows and doing 20% less iterations (due to open file limits on Windows) so the numbers are not quite directly comparable, but hopefully relative scaling remains mostly intact.