ExBench

CI status / Hexdocs

An application for white box load testing

Default configuration (dev running standalone)

config/dev.exs

config :ex_bench,
workers: 10,
overflow: 2,
concurrency: 3,
bench_fun: fn x -> IO.inspect(x) end,
producer: ExBench.FileProducer,
producer_argument: %{filename: "priv/example.consult"}

Application design / Supervision structure

Supervision hierarchy

Recording a trace ...

Capture a single invocation of

Erlang example :

'Elixir.ExBench.Capturer':capture("/tmp/foo.txt" , [ {trace_pattern, {io, format, 2}}, {count, 1}]).

Elixir example :

ExBench.Capturer.capture("/tmp/foo.txt" , [ trace_pattern: {:io, :format, 2}, count: 1])

Supported Elixir/OTP versions

See travis build for definitive, up-to-date, test matrix.

ElixirOTP
1.619
1.620.3
1.621
1.719
1.720.3
1.721
1.722
1.8.120.3
1.8.121
1.8.122
1.9.020.3
1.9.021
1.9.022
------------

Tricks

Make a bigger input arguments file

for i in `seq 1 10000` ; do echo "{test1,{\"$i\", <<7,166>>, #{},[],false, #{<<\"x\">> => <<\"y\">>}}}." ; done >> test/consult.me