I've taken the benchmarks from Matthew Rothenberg's phoenix-showdown, updated Phoenix to 0.13.1 and ran the tests on the most powerful machines available at Rackspace.
Framework | Throughput (req/s) | Latency (ms) | Consistency (σ ms) |
---|
defmodule FibAgent do | |
def start_link do | |
cache = Enum.into([{0, 0}, {1, 1}], HashDict.new) | |
Agent.start_link(fn -> cache end) | |
end | |
def fib(pid, n) when n >= 0 do | |
Agent.get_and_update(pid, &do_fib(&1, n)) | |
end | |
defmodule Exq.RouterPlug do | |
import Plug.Conn | |
use Plug.Router | |
plug :match | |
plug :dispatch | |
get "/queues" do | |
IO.puts "YOLO" | |
conn |> halt() |
defmodule SomeModule do | |
def start(host, options) do | |
# We are assuming SomeSup has been already started somewhere | |
# (ideally in a supervision tree). | |
{:ok, child_pid} = SomeSup.attach_to(SomeSup, host, options) | |
end | |
end | |
defmodule SomeSup do | |
use Supervisor |
I've taken the benchmarks from Matthew Rothenberg's phoenix-showdown, updated Phoenix to 0.13.1 and ran the tests on the most powerful machines available at Rackspace.
Framework | Throughput (req/s) | Latency (ms) | Consistency (σ ms) |
---|