Benchmarks

View Source

Benchmark

Full benchmark run (2s warmup, 5s measurement, 1s memory per scenario). Input construction is included. Memory means cumulative process allocations, including garbage-collected memory. Results describe distinct workloads on the recorded machine; cross-scenario ratios are not before/after speedups.

System

Benchmark suite executing on the following system:

Operating System macOS
CPU Information Apple M5 Pro
Number of Available Cores 18
Available Memory 48 GB
Elixir Version 1.18.4
Erlang Version 28.5

Configuration

Benchmark suite executing with the following configuration:

:time 5 s
:parallel 1
:warmup 2 s

Statistics

Run Time

Name IPS Average Deviation Median 99th %
BK.04 schedule expand 12 week business hours 11135.83 0.0898 ms ±18.52% 0.0833 ms 0.144 ms
BK.11 rrule daily 500 occurrences 1462.72 0.68 ms ±11.59% 0.67 ms 0.97 ms
BK.12 rrule weekly byday 500 occurrences 1438.24 0.70 ms ±16.52% 0.66 ms 1.05 ms
BK.15 availability eligible pool request 1220.65 0.82 ms ±5.17% 0.81 ms 0.96 ms
BK.09 decide accepted request with assignment 1200.51 0.83 ms ±4.82% 0.82 ms 1.01 ms
BK.08 validate request across 100 hosts 1191.48 0.84 ms ±11.99% 0.81 ms 1.28 ms
BK.13 ics freebusy 500 periods 851.14 1.17 ms ±7.20% 1.17 ms 1.45 ms
BK.02 interval subtract 1k busy intervals 706.46 1.42 ms ±7.61% 1.37 ms 1.71 ms
BK.01 interval merge 2k intervals 585.60 1.71 ms ±15.26% 1.61 ms 2.42 ms
BK.05 availability one host 8 weeks 480.90 2.08 ms ±19.93% 1.93 ms 3.15 ms
BK.14 jscalendar group 500 events 362.39 2.76 ms ±4.68% 2.74 ms 3.11 ms
BK.06 availability collective 10 hosts 311.21 3.21 ms ±8.39% 3.15 ms 4.27 ms
BK.03 slotting 8 week free interval 301.01 3.32 ms ±13.32% 3.21 ms 4.68 ms
BK.10 assignment weighted 1k resources 56.53 17.69 ms ±13.86% 16.63 ms 29.20 ms
BK.07 availability pool 100 hosts 3.21 311.31 ms ±3.27% 310.46 ms 325.58 ms

Run Time Comparison

Name IPS Slower
BK.04 schedule expand 12 week business hours 11135.83  
BK.11 rrule daily 500 occurrences 1462.72 7.61x
BK.12 rrule weekly byday 500 occurrences 1438.24 7.74x
BK.15 availability eligible pool request 1220.65 9.12x
BK.09 decide accepted request with assignment 1200.51 9.28x
BK.08 validate request across 100 hosts 1191.48 9.35x
BK.13 ics freebusy 500 periods 851.14 13.08x
BK.02 interval subtract 1k busy intervals 706.46 15.76x
BK.01 interval merge 2k intervals 585.60 19.02x
BK.05 availability one host 8 weeks 480.90 23.16x
BK.14 jscalendar group 500 events 362.39 30.73x
BK.06 availability collective 10 hosts 311.21 35.78x
BK.03 slotting 8 week free interval 301.01 37.0x
BK.10 assignment weighted 1k resources 56.53 196.99x
BK.07 availability pool 100 hosts 3.21 3466.69x

Memory Usage

Name Average Factor
BK.04 schedule expand 12 week business hours 0.185 MB  
BK.11 rrule daily 500 occurrences 1.56 MB 8.47x
BK.12 rrule weekly byday 500 occurrences 1.63 MB 8.83x
BK.15 availability eligible pool request 1.71 MB 9.26x
BK.09 decide accepted request with assignment 1.81 MB 9.79x
BK.08 validate request across 100 hosts 1.71 MB 9.25x
BK.13 ics freebusy 500 periods 3.65 MB 19.75x
BK.02 interval subtract 1k busy intervals 3.37 MB 18.24x
BK.01 interval merge 2k intervals 4.62 MB 25.0x
BK.05 availability one host 8 weeks 5.36 MB 29.0x
BK.14 jscalendar group 500 events 2.90 MB 15.69x
BK.06 availability collective 10 hosts 7.73 MB 41.86x
BK.03 slotting 8 week free interval 9.91 MB 53.64x
BK.10 assignment weighted 1k resources 42.47 MB 229.91x
BK.07 availability pool 100 hosts 664.15 MB 3595.38x