API
Not decided, probably going to change it to match the other implementations for drop-in replacement.
Performance Notes
Seems to be the fastest Deque implementation using Linked Lists.
> queues@1.0.0 bench /home/jonathan/workspaces/queues> perf/run.sh ~~~ Running benchmark add-remove ~~~my-deque 1155 msdouble-ended-queue 800 msdequeue 1355 msdeque: 1412 mssuite completed ~~~ Running benchmark prepend ~~~my deque impl: 824 msdouble-ended-queue 693 msdeque: 849 msdequeue 830 mssuite completed ~~~ Running benchmark batch-add-remove ~~~my-queue 2260 msdouble-ended-queue 1539 msdequeue 2179 msdeque 2446 mssuite completed
The double-ended-queue
module seems to be using a circular buffer. I think
I can push the performance a bit further by using object pooling, but I want
to make that optional without affecting the performance too much.
Somehow having an object pool in place seems to hurt my performance more than anything...