README.md
# Belixir
Elixir iterations per second benchmark tool inspired from awesome Ruby `benchmark-ips` gem.
## Installation
Add belixir to your list of dependencies in `mix.exs`:
```elixir
def deps do
[{:belixir, "~> 0.1.0"}]
end
```
Then run `mix deps.get`.
## Example Usage
Define a module which uses `Belixir` like so:
```elixir
defmodule MyBenchmark do
use Belixir
Belixir.ips "foo" do
a = (1 + 1) / 4 + 1
:math.sqrt(a)
b = (1 + 1) / 4 + 2
:math.sqrt(b)
end
Belixir.ips "bar" do
for n <- 1..2 do
a = (1 + 1) / 4 + n
:math.sqrt(a)
end
end
Belixir.compare(3) # Runs each benchmark for 3 seconds. If you don't send any parameter, it runs for 5 seconds.
end
```
Define your application in mix file as:
```
def application do
[applications: [:logger], mod: { MyBenchmark , [] }]
end
```
Then run it with `iex -S mix`.
## Example Output
```
*************************** bar **********************
5.00 s 8.93 M total 1.79 M ips
*************************** foo **********************
5.00 s 148.35 M total 29.67 M ips
`foo` is fastest
`bar` is 16.61 times slower than `foo`
```