my solutions to advent of code
aoc advent-of-code

dumb little benchmark script

aylac.top 04ef5bc3 b3ae54d5

verified
+25
gleam_bench.fish
··· 1 + #!/usr/bin/env fish 2 + # dumb little fun test to compare the runtimes 3 + 4 + set year (count $argv > /dev/null && echo $argv[2] || echo 2015) 5 + set day (count $argv > /dev/null && echo $argv[1] || echo 1) 6 + 7 + cd "2015/$day/gleam" 8 + gleam build --target erlang 9 + gleam build --target javascript 10 + 11 + echo "=== Day $day Benchmark ===" 12 + echo "" 13 + 14 + echo "Single run:" 15 + echo "" 16 + hyperfine --warmup 1 \ 17 + -n 'Bun' 'bun -e "const { main } = await import(\"./build/dev/javascript/main/main.mjs\"); main();"' \ 18 + -n 'BEAM' 'erl -noshell -pa build/dev/erlang/*/ebin -eval "main:main()" -s init stop' 19 + 20 + echo "" 21 + echo "100 iterations (sustained):" 22 + echo "" 23 + hyperfine --warmup 1 \ 24 + -n 'Bun' 'bun -e "const { main } = await import(\"./build/dev/javascript/main/main.mjs\"); for (let i = 0; i < 100; i++) main();"' \ 25 + -n 'BEAM' 'erl -noshell -pa build/dev/erlang/*/ebin -eval "lists:foreach(fun(_) -> main:main() end, lists:seq(1, 100)), init:stop()"'
+3
shell.nix
··· 11 11 gleam 12 12 beam28Packages.erlang 13 13 beam28Packages.rebar3 14 + 15 + hyperfine 16 + fish 14 17 ]; 15 18 }