What is Neo-Async?
Neo-Async is meant to be used as a drop-in replacement for the Async library. It implements the same API, and adds extra functionality. I have been trying to make it faster and safer than Async.
It doesnt mean I dont like Async. I would like to improve both libraries and to showcase some performance optimizations that might be implemented by other Node.js libraries. I especially admire @aearly for their good work.
Recently, Async has been released v2.0.0-rc.6 and I released Neo-Async v2.0.0-rc.1.
So I would like to check performance using benchmark and func-comparator.
How to check
I made a repository to measure performance between Async and Neo-Async.
$ git clone firstname.lastname@example.org:suguru03/async-benchmark.git $ cd async-benchmark $ npm install $ node . // It might take more than one hour...
- Ubuntu v12.04
- Node.js v6.2.1
- async v2.0.0-rc.6
- neo-async v2.0.0-rc.1
- benchmark v2.1.0
- func-comparator v0.7.1
Neo-Async is 1.27 ~ 10.7 times faster than Async.
The value is the ratio (Neo-Async/Async) of the average speed.
Im not done with performance optimization; the control flow functions are my main focus right now. I will release v2.0.0 when satisfied with performance.
And Im keeping in mind this issue.
Benchmark setup seems to be biased against async callback style libraries · Issue #985 · petkaantonov/bluebird · GitHub
I believe the
asyncFlowF library doesnt implement the same interface as Async, but I would like Neo-Async to be beat it benchmark anyways. ;)
Next time, I will write about the difference between Async and Neo-Async. :)