Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Erlang Priority Queues
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
doc
src
test
unused Update documentation. Move modules so that the application scope is m…
.gitignore
README.markdown
mix.exs
rebar.config

README.markdown

Erlang Priority Queue Implementation

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 than pqueue2 and priority_queue when using 64 or more priorities at the same time)
  • pqueue4 (slightly slower than pqueue 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.

Author

Michael Truog (mjtruog [at] gmail (dot) com)

Thanks

  • Jesper Louis andersen (PropEr integration and testing)
  • Ulf Wiger (suggestions and insight)

License

(pqueue4:queue_remove_unique/2 is under the Erlang Public License) BSD

Something went wrong with that request. Please try again.