Glychee
A simple gleam benchmark runner which wraps https://github.com/bencheeorg/benchee.
Quick start
Notice: Requires at least gleam 0.24 (or gleam 0.0.0-nightly-221019 or later).
Also requires elixir and hex to be installed. You might be required to run
mix local.hex
after installing elixir.
- Add glychee to your project:
gleam add glychee
. - Create a a custom benchmarking module that contains a
main
-function. Seeglychee_example_benchmark_module.gleam
as an example. In that module you will define whichFunction
s to benchmark with one or manyData
. - Run the benchmark.
bin/glychee_example_benchmark_call.sh
in this library’s source shows an example on how do do it:
Example
If you do not have a project yet, create it with:
gleam new foobar
cd foobar
Create a file named src/benchmark.gleam
with following contents:
if erlang {
import glychee/benchmark
import gleam/list
import gleam/int
pub fn main() {
benchmark.run(
[
benchmark.Function(
label: "list.sort()",
fun: fn(test_data) {
fn() {
list.sort(test_data, int.compare)
}
},
),
],
[
benchmark.Data(
label: "pre-sorted list",
data: list.range(1, 100_000),
),
benchmark.Data(
label: "reversed list",
data: list.range(1, 100_000)
|> list.reverse,
),
],
)
}
}
Then run via:
gleam clean && \
gleam build && \
erl -pa ./build/dev/erlang/*/ebin -noshell -eval 'gleam@@main:run(benchmark)'
Installation
If available on Hex this package can be added to your Gleam project:
gleam add glychee
Glychee’s documentation can be found at https://hexdocs.pm/glychee.
License
Apache 2.0