aboutsummaryrefslogtreecommitdiff
path: root/aoc2023/build/dev/erlang/pqueue/README.markdown
diff options
context:
space:
mode:
authorJ.J <thechairman@thechairman.info>2024-05-30 21:50:02 -0400
committerJ.J <thechairman@thechairman.info>2024-05-30 21:50:02 -0400
commit612fd986ab1e00b6d34dc1937136250e08e89325 (patch)
treea3c93952040c6afdf348b5831619a45db7ba0a2e /aoc2023/build/dev/erlang/pqueue/README.markdown
parent231c2b688d1e6cf0846d46e883da30e042a9c6cf (diff)
downloadgleam_aoc-612fd986ab1e00b6d34dc1937136250e08e89325.tar.gz
gleam_aoc-612fd986ab1e00b6d34dc1937136250e08e89325.zip
cleanup
Diffstat (limited to 'aoc2023/build/dev/erlang/pqueue/README.markdown')
-rw-r--r--aoc2023/build/dev/erlang/pqueue/README.markdown31
1 files changed, 31 insertions, 0 deletions
diff --git a/aoc2023/build/dev/erlang/pqueue/README.markdown b/aoc2023/build/dev/erlang/pqueue/README.markdown
new file mode 100644
index 0000000..77aaf1c
--- /dev/null
+++ b/aoc2023/build/dev/erlang/pqueue/README.markdown
@@ -0,0 +1,31 @@
+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](https://github.com/basho/riak_core/blob/master/src/riak_core_priority_queue.erl).
+
+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](http://okeuday.livejournal.com/19539.html), with [the benchmark here](http://github.com/okeuday/erlbench).
+
+Author
+------
+
+Michael Truog (mjtruog at protonmail dot com)
+
+Thanks
+------
+
+* Jesper Louis andersen (PropEr integration and testing)
+* Ulf Wiger (suggestions and insight)
+
+License
+-------
+
+MIT License
+