Skip to content

bakkdoor/e_q

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EQ

Based on EQueue by Ben Falk with some additions and improvements.

Description

An Elixir wrapper around the Erlang optimized queue that supports the FIFO, first-in first-out, pattern. This is useful is when you can't predict when an item needs to be taken or added to the queue. Use this instead of using ++ or double reversing lists to add items to the "back" of a queue.

This is the results of pushing 100k elements onto a list and poping every 13th element off of it ( over 100x faster! )

# mix run test/performance.exs

IO.puts "#{inspect :timer.tc(EQ.Performance, :test_queue, [[]])}"
#> {21163189, :ok}

IO.puts "#{inspect :timer.tc(EQ.Performance, :test_queue, [EQ.new])}"
#> {189986, :ok}

Installation

  1. Add EQ to your list of dependencies in mix.exs:

    def deps do [{:e_q, "~> 1.0.0"}] end

About

Erlang Queue for Elixir

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages