The priority queue implementations implement a subset of the stdlib Erlang queue interface as seen in the implementation used by both Riak and RabbitMQ.
The implementations:
priority_queue
(fastest for any priorities when only using a single priority at a time)pqueue
(fastest for 41 priorities, -20 (high) to 20 (low), when using 2 or more priorities at the same time)pqueue2
(slower heap implementation)pqueue3
(faster thanpqueue2
andpriority_queue
when using 64 or more priorities at the same time)pqueue4
(slightly slower thanpqueue
but fastest for allowing 257 priorities, -128 (high) to 128 (low), i.e., fastest when using 42 or more priorities at the same time)
The latest results are here, with the benchmark here.
Michael Truog (mjtruog at protonmail dot com)
- Jesper Louis andersen (PropEr integration and testing)
- Ulf Wiger (suggestions and insight)
MIT License