Repository navigation
Conversation
Owner
Author
Comparison resultsmix run jsonschex_before_after.exs --baseline 0e3e2f40603fa5e57eff20ba8913861b10776572Before: 0e3e2f40603fa5e57eff20ba8913861b10776572
After: 62d5280ecfbc078fbc8734290215c138d3cc7b8b plus current lib working-tree changes
After lib SHA-256: 805ac1b5903d708049c4690adea31aa7113aaf5e4c7ad8736203f19143bd3fb4; dirty: false
Order: before_first
============================================================
Benchmark: simple_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.59 M 629.95 ns ±1112.35% 542 ns 833 ns
Before 1.57 M 637.06 ns ±1575.21% 541 ns 958 ns
Comparison:
After 1.59 M
Before 1.57 M - 1.01x slower +7.11 ns
Memory usage statistics:
Name Memory usage
After 352 B
Before 352 B - 1.00x memory usage +0 B
**All measurements for memory usage were the same**
============================================================
Benchmark: simple_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.56 M 642.43 ns ±1348.03% 542 ns 834 ns
After 1.54 M 650.99 ns ±1476.57% 542 ns 834 ns
Comparison:
Before 1.56 M
After 1.54 M - 1.01x slower +8.56 ns
Memory usage statistics:
Name Memory usage
Before 496 B
After 440 B - 0.89x memory usage -56 B
**All measurements for memory usage were the same**
============================================================
Benchmark: nested_object_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 507.28 K 1.97 μs ±337.31% 1.75 μs 3.67 μs
After 485.25 K 2.06 μs ±399.22% 1.83 μs 3.96 μs
Comparison:
Before 507.28 K
After 485.25 K - 1.05x slower +0.0895 μs
Memory usage statistics:
Name Memory usage
Before 3.52 KB
After 3.52 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: nested_object_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.09 M 0.92 μs ±916.05% 0.79 μs 1.29 μs
Before 0.87 M 1.14 μs ±780.04% 0.92 μs 13.79 μs
Comparison:
After 1.09 M
Before 0.87 M - 1.25x slower +0.23 μs
Memory usage statistics:
Name Memory usage
After 2.45 KB
Before 2.59 KB - 1.06x memory usage +0.141 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: ref_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 301.53 K 3.32 μs ±216.05% 3 μs 7.29 μs
After 287.46 K 3.48 μs ±196.65% 3.21 μs 7.50 μs
Comparison:
Before 301.53 K
After 287.46 K - 1.05x slower +0.162 μs
Memory usage statistics:
Name Memory usage
Before 6.48 KB
After 6.48 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: ref_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 668.32 K 1.50 μs ±479.87% 1.33 μs 2.38 μs
After 642.30 K 1.56 μs ±479.93% 1.42 μs 2.46 μs
Comparison:
Before 668.32 K
After 642.30 K - 1.04x slower +0.0606 μs
Memory usage statistics:
Name Memory usage
Before 3.08 KB
After 3.02 KB - 0.98x memory usage -0.05469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_small_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 324.92 K 3.08 μs ±400.23% 2.79 μs 6.75 μs
After 304.40 K 3.29 μs ±241.91% 3 μs 7.25 μs
Comparison:
Before 324.92 K
After 304.40 K - 1.07x slower +0.21 μs
Memory usage statistics:
Name Memory usage
Before 7.55 KB
After 7.55 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_large_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 31.68 K 31.56 μs ±16.04% 31.08 μs 49.32 μs
After 29.45 K 33.95 μs ±24.36% 33.54 μs 51.67 μs
Comparison:
Before 31.68 K
After 29.45 K - 1.08x slower +2.39 μs
Memory usage statistics:
Name Memory usage
Before 73.77 KB
After 73.77 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 363.24 K 2.75 μs ±328.67% 2.50 μs 6.54 μs
After 342.05 K 2.92 μs ±220.22% 2.63 μs 7.08 μs
Comparison:
Before 363.24 K
After 342.05 K - 1.06x slower +0.171 μs
Memory usage statistics:
Name Memory usage
Before 10.16 KB
After 9.83 KB - 0.97x memory usage -0.33594 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_prefix_contains_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.82 M 549.89 ns ±1655.14% 459 ns 792 ns
After 1.63 M 612.64 ns ±1372.52% 500 ns 875 ns
Comparison:
Before 1.82 M
After 1.63 M - 1.11x slower +62.76 ns
Memory usage statistics:
Name Memory usage
Before 2.21 KB
After 2.21 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_prefix_contains_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 2.17 M 460.34 ns ±1464.65% 416 ns 708 ns
After 1.94 M 514.82 ns ±1401.91% 458 ns 791 ns
Comparison:
Before 2.17 M
After 1.94 M - 1.12x slower +54.48 ns
Memory usage statistics:
Name Memory usage
Before 2.26 KB
After 2.20 KB - 0.98x memory usage -0.05469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_unique_items_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 226.94 K 4.41 μs ±140.74% 4 μs 10.71 μs
After 226.15 K 4.42 μs ±194.99% 4 μs 10.58 μs
Comparison:
Before 226.94 K
After 226.15 K - 1.00x slower +0.0154 μs
Memory usage statistics:
Name Memory usage
Before 14.66 KB
After 14.66 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: array_unique_items_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 227.19 K 4.40 μs ±156.62% 3.96 μs 11.17 μs
After 225.98 K 4.43 μs ±150.41% 3.96 μs 11.25 μs
Comparison:
Before 227.19 K
After 225.98 K - 1.01x slower +0.0236 μs
Memory usage statistics:
Name Memory usage
Before 15.09 KB
After 15.03 KB - 1.00x memory usage -0.05469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: allof_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.22 M 821.96 ns ±1087.94% 709 ns 1125 ns
After 1.16 M 865.09 ns ±1009.65% 750 ns 1208 ns
Comparison:
Before 1.22 M
After 1.16 M - 1.05x slower +43.13 ns
Memory usage statistics:
Name Memory usage
Before 1.73 KB
After 1.73 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: allof_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.71 M 584.80 ns ±1277.36% 500 ns 834 ns
After 1.67 M 599.09 ns ±971.69% 500 ns 875 ns
Comparison:
Before 1.71 M
After 1.67 M - 1.02x slower +14.29 ns
Memory usage statistics:
Name Memory usage
Before 1.68 KB
After 1.54 KB - 0.92x memory usage -0.14063 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: anyof_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.21 M 823.76 ns ±856.33% 709 ns 1167 ns
Before 1.13 M 883.99 ns ±787.62% 792 ns 1250 ns
Comparison:
After 1.21 M
Before 1.13 M - 1.07x slower +60.23 ns
Memory usage statistics:
Name Memory usage
After 2.16 KB
Before 2.20 KB - 1.02x memory usage +0.0469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: anyof_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.29 M 773.04 ns ±805.19% 667 ns 1125 ns
Before 1.15 M 872.51 ns ±737.42% 750 ns 1250 ns
Comparison:
After 1.29 M
Before 1.15 M - 1.13x slower +99.47 ns
Memory usage statistics:
Name Memory usage
After 2.20 KB
Before 2.48 KB - 1.13x memory usage +0.28 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: oneof_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.03 M 0.97 μs ±945.14% 0.83 μs 1.38 μs
Before 0.95 M 1.05 μs ±836.72% 0.92 μs 1.46 μs
Comparison:
After 1.03 M
Before 0.95 M - 1.09x slower +0.0838 μs
Memory usage statistics:
Name Memory usage
After 2.59 KB
Before 2.69 KB - 1.04x memory usage +0.0938 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: oneof_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.09 M 0.92 μs ±959.75% 0.83 μs 1.42 μs
Before 0.93 M 1.08 μs ±830.04% 0.96 μs 1.71 μs
Comparison:
After 1.09 M
Before 0.93 M - 1.17x slower +0.158 μs
Memory usage statistics:
Name Memory usage
After 2.89 KB
Before 3.26 KB - 1.13x memory usage +0.37 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: not_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 4.58 M 218.20 ns ±4039.41% 167 ns 333 ns
After 4.37 M 228.71 ns ±3913.72% 167 ns 375 ns
Comparison:
Before 4.58 M
After 4.37 M - 1.05x slower +10.52 ns
Memory usage statistics:
Name Memory usage
Before 568 B
After 568 B - 1.00x memory usage +0 B
**All measurements for memory usage were the same**
============================================================
Benchmark: not_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 4.03 M 247.87 ns ±2973.47% 208 ns 375 ns
Before 3.65 M 274.33 ns ±3389.14% 208 ns 416 ns
Comparison:
After 4.03 M
Before 3.65 M - 1.11x slower +26.46 ns
Memory usage statistics:
Name Memory usage
After 656 B
Before 712 B - 1.09x memory usage +56 B
**All measurements for memory usage were the same**
============================================================
Benchmark: conditional_valid_then
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 852.76 K 1.17 μs ±534.34% 1.04 μs 1.63 μs
Before 851.36 K 1.17 μs ±537.39% 1.04 μs 1.63 μs
Comparison:
After 852.76 K
Before 851.36 K - 1.00x slower +0.00194 μs
Memory usage statistics:
Name Memory usage
After 1.54 KB
Before 1.54 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: conditional_valid_else
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 968.34 K 1.03 μs ±670.85% 0.92 μs 1.42 μs
After 923.02 K 1.08 μs ±1657.65% 0.88 μs 1.75 μs
Comparison:
Before 968.34 K
After 923.02 K - 1.05x slower +0.0507 μs
Memory usage statistics:
Name Memory usage
Before 1.42 KB
After 1.42 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: conditional_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.05 M 955.35 ns ±705.64% 833 ns 1292 ns
After 1.01 M 989.28 ns ±984.91% 834 ns 1875 ns
Comparison:
Before 1.05 M
After 1.01 M - 1.04x slower +33.93 ns
Memory usage statistics:
Name Memory usage
Before 1.48 KB
After 1.45 KB - 0.97x memory usage -0.03906 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: additional_pattern_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 424.43 K 2.36 μs ±319.46% 2.13 μs 3.88 μs
Before 339.23 K 2.95 μs ±315.57% 2.63 μs 4.88 μs
Comparison:
After 424.43 K
Before 339.23 K - 1.25x slower +0.59 μs
Memory usage statistics:
Name Memory usage
After 2.04 KB
Before 1.56 KB - 0.77x memory usage -0.47656 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: additional_pattern_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 592.58 K 1.69 μs ±521.14% 1.50 μs 2.63 μs
Before 523.60 K 1.91 μs ±402.39% 1.71 μs 2.79 μs
Comparison:
After 592.58 K
Before 523.60 K - 1.13x slower +0.22 μs
Memory usage statistics:
Name Memory usage
After 1.51 KB
Before 1.37 KB - 0.91x memory usage -0.14063 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: additional_schema_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.25 M 800.79 ns ±848.54% 708 ns 1125 ns
After 1.17 M 855.52 ns ±863.52% 750 ns 1375 ns
Comparison:
Before 1.25 M
After 1.17 M - 1.07x slower +54.73 ns
Memory usage statistics:
Name Memory usage
Before 1.79 KB
After 1.69 KB - 0.94x memory usage -0.10156 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: additional_schema_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 2.33 M 428.75 ns ±1497.67% 375 ns 625 ns
After 2.12 M 472.21 ns ±670.20% 417 ns 708 ns
Comparison:
Before 2.33 M
After 2.12 M - 1.10x slower +43.46 ns
Memory usage statistics:
Name Memory usage
Before 1.35 KB
After 1.39 KB - 1.03x memory usage +0.0391 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: unevaluated_valid_then
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.30 M 770.31 ns ±978.08% 667 ns 1083 ns
After 1.30 M 771.36 ns ±949.75% 667 ns 1083 ns
Comparison:
Before 1.30 M
After 1.30 M - 1.00x slower +1.06 ns
Memory usage statistics:
Name Memory usage
Before 1.70 KB
After 1.70 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: unevaluated_valid_else
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.58 M 634.82 ns ±1161.04% 542 ns 875 ns
After 1.57 M 636.78 ns ±1106.23% 542 ns 916 ns
Comparison:
Before 1.58 M
After 1.57 M - 1.00x slower +1.97 ns
Memory usage statistics:
Name Memory usage
Before 1.57 KB
After 1.57 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: unevaluated_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 949.66 K 1.05 μs ±687.23% 0.71 μs 14.33 μs
Before 933.97 K 1.07 μs ±824.06% 0.71 μs 14.42 μs
Comparison:
After 949.66 K
Before 933.97 K - 1.02x slower +0.0177 μs
Memory usage statistics:
Name Memory usage
After 2.04 KB
Before 2.08 KB - 1.02x memory usage +0.0391 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: dependent_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.36 M 732.88 ns ±955.24% 625 ns 1000 ns
Before 1.36 M 736.16 ns ±1104.67% 625 ns 1000 ns
Comparison:
After 1.36 M
Before 1.36 M - 1.00x slower +3.28 ns
Memory usage statistics:
Name Memory usage
After 1.61 KB
Before 1.61 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: dependent_invalid_missing
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 2.07 M 483.96 ns ±1487.86% 416 ns 667 ns
Before 2.06 M 484.91 ns ±1524.27% 375 ns 667 ns
Comparison:
After 2.07 M
Before 2.06 M - 1.00x slower +0.96 ns
Memory usage statistics:
Name Memory usage
After 1.05 KB
Before 1.09 KB - 1.04x memory usage +0.0391 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: dependent_invalid_schema
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 1.73 M 579.54 ns ±897.24% 501 ns 833 ns
After 1.65 M 604.84 ns ±1170.87% 500 ns 834 ns
Comparison:
Before 1.73 M
After 1.65 M - 1.04x slower +25.30 ns
Memory usage statistics:
Name Memory usage
Before 1.37 KB
After 1.33 KB - 0.97x memory usage -0.03906 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: large_payload_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 8.17 K 122.40 μs ±10.89% 124.13 μs 149.25 μs
After 6.93 K 144.37 μs ±16.32% 136.88 μs 199.50 μs
Comparison:
Before 8.17 K
After 6.93 K - 1.18x slower +21.97 μs
Memory usage statistics:
Name Memory usage
Before 278.63 KB
After 278.68 KB - 1.00x memory usage +0.0547 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: large_payload_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 8.96 K 111.57 μs ±15.98% 112.46 μs 139.91 μs
After 8.49 K 117.85 μs ±10.08% 118.96 μs 145.45 μs
Comparison:
Before 8.96 K
After 8.49 K - 1.06x slower +6.28 μs
Memory usage statistics:
Name Memory usage
Before 244.02 KB
After 243.53 KB - 1.00x memory usage -0.49219 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: property_names_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 132.60 K 7.54 μs ±101.91% 6.96 μs 15.04 μs
After 129.42 K 7.73 μs ±70.04% 7.13 μs 15.42 μs
Comparison:
Before 132.60 K
After 129.42 K - 1.02x slower +0.185 μs
Memory usage statistics:
Name Memory usage
Before 4 KB
After 4 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: property_names_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 123.89 K 8.07 μs ±77.61% 7.42 μs 15.88 μs
After 121.48 K 8.23 μs ±78.64% 7.58 μs 16.08 μs
Comparison:
Before 123.89 K
After 121.48 K - 1.02x slower +0.160 μs
Memory usage statistics:
Name Memory usage
Before 4.62 KB
After 4.56 KB - 0.99x memory usage -0.05469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_email_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.17 M 857.06 ns ±758.85% 750 ns 1167 ns
Before 1.14 M 876.62 ns ±928.90% 750 ns 1208 ns
Comparison:
After 1.17 M
Before 1.14 M - 1.02x slower +19.57 ns
Memory usage statistics:
Name Memory usage
After 1.09 KB
Before 1.09 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_email_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 4.38 M 228.16 ns ±3785.45% 167 ns 333 ns
After 3.70 M 270.49 ns ±8023.79% 167 ns 333 ns
Comparison:
Before 4.38 M
After 3.70 M - 1.19x slower +42.33 ns
Memory usage statistics:
Name Memory usage
Before 440 B
After 384 B - 0.87x memory usage -56 B
**All measurements for memory usage were the same**
============================================================
Benchmark: format_date_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 5.29 M 189.01 ns ±5138.48% 125 ns 291 ns
After 5.15 M 194.31 ns ±4944.13% 125 ns 292 ns
Comparison:
Before 5.29 M
After 5.15 M - 1.03x slower +5.30 ns
Memory usage statistics:
Name Memory usage
Before 568 B
After 568 B - 1.00x memory usage +0 B
**All measurements for memory usage were the same**
============================================================
Benchmark: format_date_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 6.59 M 151.82 ns ±5250.77% 125 ns 250 ns
After 6.31 M 158.47 ns ±4711.15% 125 ns 250 ns
Comparison:
Before 6.59 M
After 6.31 M - 1.04x slower +6.65 ns
Memory usage statistics:
Name Memory usage
Before 520 B
After 464 B - 0.89x memory usage -56 B
**All measurements for memory usage were the same**
============================================================
Benchmark: format_iri_ref_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 191.92 K 5.21 μs ±599.47% 3.75 μs 10.63 μs
Before 190.28 K 5.26 μs ±600.92% 3.75 μs 10.75 μs
Comparison:
After 191.92 K
Before 190.28 K - 1.01x slower +0.0449 μs
Memory usage statistics:
Name Memory usage
After 3.02 KB
Before 3.02 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_iri_ref_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 173.61 K 5.76 μs ±518.92% 4.17 μs 11.42 μs
Before 154.67 K 6.47 μs ±499.20% 4.63 μs 16.96 μs
Comparison:
After 173.61 K
Before 154.67 K - 1.12x slower +0.71 μs
Memory usage statistics:
Name Memory usage
After 3.27 KB
Before 3.33 KB - 1.02x memory usage +0.0547 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_uri_ref_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 605.53 K 1.65 μs ±1285.14% 1.17 μs 4.13 μs
After 577.40 K 1.73 μs ±1298.42% 1.17 μs 4.63 μs
Comparison:
Before 605.53 K
After 577.40 K - 1.05x slower +0.0804 μs
Memory usage statistics:
Name Memory usage
Before 1.05 KB
After 1.05 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_uri_ref_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 534.80 K 1.87 μs ±943.47% 1.38 μs 4.79 μs
After 508.01 K 1.97 μs ±1052.07% 1.38 μs 4.42 μs
Comparison:
Before 534.80 K
After 508.01 K - 1.05x slower +0.0986 μs
Memory usage statistics:
Name Memory usage
Before 1.29 KB
After 1.23 KB - 0.96x memory usage -0.05469 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_ipv4_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 3.70 M 270.47 ns ±3556.97% 209 ns 375 ns
Before 3.22 M 310.46 ns ±2364.14% 209 ns 416 ns
Comparison:
After 3.70 M
Before 3.22 M - 1.15x slower +39.98 ns
Memory usage statistics:
Name Memory usage
After 752 B
Before 752 B - 1.00x memory usage +0 B
**All measurements for memory usage were the same**
============================================================
Benchmark: format_ipv4_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 6.24 M 160.38 ns ±5550.23% 84 ns 209 ns
After 6.19 M 161.50 ns ±5735.44% 125 ns 250 ns
Comparison:
Before 6.24 M
After 6.19 M - 1.01x slower +1.11 ns
Memory usage statistics:
Name Memory usage
Before 512 B
After 456 B - 0.89x memory usage -56 B
**All measurements for memory usage were the same**
============================================================
Benchmark: format_combo_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 343.47 K 2.91 μs ±469.64% 2.29 μs 7.38 μs
After 335.73 K 2.98 μs ±638.87% 2.33 μs 7.88 μs
Comparison:
Before 343.47 K
After 335.73 K - 1.02x slower +0.0671 μs
Memory usage statistics:
Name Memory usage
Before 3.49 KB
After 3.49 KB - 1.00x memory usage +0 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: format_combo_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
Before 491.60 K 2.03 μs ±738.58% 1.46 μs 5.33 μs
After 480.51 K 2.08 μs ±686.74% 1.50 μs 5.17 μs
Comparison:
Before 491.60 K
After 480.51 K - 1.02x slower +0.0469 μs
Memory usage statistics:
Name Memory usage
Before 2.55 KB
After 2.47 KB - 0.97x memory usage -0.08594 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: dependencies_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 4.22 M 237.20 ns ±2499.37% 208 ns 334 ns
Before 4.13 M 241.99 ns ±2623.10% 208 ns 375 ns
Comparison:
After 4.22 M
Before 4.13 M - 1.02x slower +4.79 ns
Memory usage statistics:
Name Memory usage
After 384 B
Before 384 B - 1.00x memory usage +0 B
**All measurements for memory usage were the same**
============================================================
Benchmark: dependencies_invalid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 5.09 M 196.66 ns ±3564.28% 125 ns 292 ns
Before 4.77 M 209.58 ns ±4689.60% 167 ns 333 ns
Comparison:
After 5.09 M
Before 4.77 M - 1.07x slower +12.92 ns
Memory usage statistics:
Name Memory usage
After 488 B
Before 568 B - 1.16x memory usage +80 B
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_bundle_p1_structural_depth_400
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 2.29 K 0.44 ms ±117.30% 0.43 ms 0.56 ms
Before 0.0216 K 46.39 ms ±3.40% 46.67 ms 48.95 ms
Comparison:
After 2.29 K
Before 0.0216 K - 106.45x slower +45.95 ms
Memory usage statistics:
Name Memory usage
After 0.41 MB
Before 34.13 MB - 83.80x memory usage +33.72 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_bundle_p2_fallback_anchors_2000
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.13 K 0.89 ms ±25.89% 0.86 ms 1.29 ms
Before 0.0292 K 34.21 ms ±3.86% 34.30 ms 36.35 ms
Comparison:
After 1.13 K
Before 0.0292 K - 38.55x slower +33.32 ms
Memory usage statistics:
Name Memory usage
After 1.64 MB
Before 28.96 MB - 17.63x memory usage +27.32 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_bundle_p3_identity_alias_payload_2000
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 1.45 K 0.69 ms ±13.39% 0.65 ms 0.92 ms
Before 0.0674 K 14.83 ms ±4.72% 14.72 ms 18.82 ms
Comparison:
After 1.45 K
Before 0.0674 K - 21.44x slower +14.14 ms
Memory usage statistics:
Name Memory usage
After 1.97 MB
Before 12.68 MB - 6.45x memory usage +10.72 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_compile_p4_scope_reuse_depth_400
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 148.45 6.74 ms ±7.35% 6.79 ms 7.48 ms
Before 1.32 757.56 ms ±11.73% 730.98 ms 949.34 ms
Comparison:
After 148.45
Before 1.32 - 112.46x slower +750.82 ms
Memory usage statistics:
Name Memory usage
After 4.90 MB
Before 485.21 MB - 98.96x memory usage +480.31 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_compile_p4_local_ref_reuse_width_200
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 108.54 9.21 ms ±6.21% 9.21 ms 11.44 ms
Before 70.08 14.27 ms ±14.14% 13.98 ms 17.31 ms
Comparison:
After 108.54
Before 70.08 - 1.55x slower +5.06 ms
Memory usage statistics:
Name Memory usage
After 6.71 MB
Before 13.12 MB - 1.96x memory usage +6.41 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_compile_p6_sibling_regex_width_512
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 417.54 2.39 ms ±10.04% 2.41 ms 2.89 ms
Before 213.31 4.69 ms ±8.37% 4.71 ms 5.33 ms
Comparison:
After 417.54
Before 213.31 - 1.96x slower +2.29 ms
Memory usage statistics:
Name Memory usage
After 1.02 MB
Before 1.65 MB - 1.61x memory usage +0.62 MB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_validate_p5_unicode_long_valid
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 12.71 K 78.66 μs ±34.71% 77.38 μs 110.50 μs
Before 5.44 K 183.83 μs ±19.51% 179.13 μs 255.88 μs
Comparison:
After 12.71 K
Before 5.44 K - 2.34x slower +105.17 μs
Memory usage statistics:
Name Memory usage
After 200 B
Before 120 B - 0.60x memory usage -80 B
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_validate_p7_pattern_cache_width_16
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 11.14 K 89.76 μs ±127.95% 88.63 μs 116.67 μs
Before 5.32 K 187.93 μs ±8.69% 187.21 μs 222.83 μs
Comparison:
After 11.14 K
Before 5.32 K - 2.09x slower +98.18 μs
Memory usage statistics:
Name Memory usage
After 10.74 KB
Before 19.37 KB - 1.80x memory usage +8.63 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_validate_p8_anyof_parent_dominated_width_16
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 82.25 K 12.16 μs ±64.27% 11.29 μs 23.42 μs
Before 23.54 K 42.47 μs ±17.41% 41.75 μs 62.21 μs
Comparison:
After 82.25 K
Before 23.54 K - 3.49x slower +30.32 μs
Memory usage statistics:
Name Memory usage
After 20.97 KB
Before 25.57 KB - 1.22x memory usage +4.60 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_validate_p9_flat_item_errors_256
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 70.66 K 14.15 μs ±73.53% 11.75 μs 29.83 μs
Before 30.03 K 33.30 μs ±35.17% 32.54 μs 57.58 μs
Comparison:
After 70.66 K
Before 30.03 K - 2.35x slower +19.15 μs
Memory usage statistics:
Name Memory usage
After 88.14 KB
Before 96.16 KB - 1.09x memory usage +8.02 KB
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_validate_p12_required_last_missing_128
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 197.84 K 5.05 μs ±93.69% 4.63 μs 7.50 μs
Before 85.35 K 11.72 μs ±54.15% 9.83 μs 32.88 μs
Comparison:
After 197.84 K
Before 85.35 K - 2.32x slower +6.66 μs
Memory usage statistics:
Name Memory usage
After 320 B
Before 400 B - 1.25x memory usage +80 B
**All measurements for memory usage were the same**
============================================================
Benchmark: optimization_scan_p13_wide_properties_1024
============================================================
Operating System: macOS
CPU Information: Apple M2 Pro
Number of Available Cores: 10
Available memory: 16 GB
Elixir 1.19.5
Erlang 28.2
JIT enabled: true
Benchmark suite executing with the following configuration:
warmup: 2 s
time: 5 s
memory time: 2 s
reduction time: 0 ns
parallel: 1
inputs: none specified
Estimated total run time: 18 s
Excluding outliers: false
Benchmarking Before ...
Benchmarking After ...
Calculating statistics...
Formatting results...
Name ips average deviation median 99th %
After 145.03 6.90 ms ±5.64% 6.79 ms 7.84 ms
Before 144.04 6.94 ms ±6.53% 6.84 ms 7.95 ms
Comparison:
After 145.03
Before 144.04 - 1.01x slower +0.0472 ms
Memory usage statistics:
Name Memory usage
After 4.79 MB
Before 5.03 MB - 1.05x memory usage +0.24 MB
**All measurements for memory usage were the same**
============================================================
All 64 paired benchmarks complete!
============================================================ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
JSONSchex before/after benchmark overview
Date: 2026-09-14
Compared revisions
0e3e2f40603fa5e57eff20ba8913861b10776572, which is9ab9748c0e4d401426f38bd21b6b4176ab6a017e^3edf5f8bc30fb2f967c5c7539bcd477eafa6b65c, whose merged source tree contains the optimization implementation through0d1ae09d28ae082a9e00e116cbea14eff5ed84089ab9748through currentmain; merge-only and comment-only commits are not assigned focused cases, and the deferred P10/P11 proposals are excludedThe script always benchmarks the current compiled working tree, so any later tracked or untracked
lib/changes are also part of After. The TSV metadata records the printed HEAD, an exact SHA-256 digest of all currentlib/**/*.exsources, and whether Git reports thelib/tree as dirty. At the time of these measurements, the currentlib/tree matched3edf5f8, had digest1a636d7c700240152486af5298651f9d71c4985c097b4aa0d9f80a3ed93928fa, and was not dirty.Workload inventory
libs_comparisonsnapshotThe inherited cases remain a broad validation overview. The focused cases separately exercise P1–P9, P12, and P13 at the implementation boundaries changed by those commits. They are intentionally not folded into the inherited validation aggregate because compilation, bundling, scanning, and validation have different units and production frequencies.
The benchmark loads every
lib/**/*.exsource file from the baseline commit, rewrites only the private module namespace fromJSONSchextoJSONSchexBaseline, and compiles that complete source snapshot alongside the current implementation. Both versions are measured in the same BEAM and the same Benchee suite. JSV and JsonXema are not loaded as benchmark subjects or included in the results. The four newer cross-libraryscale_*cases inbench/libs_comparison.exsare intentionally outside this frozen 52-case inherited result set.Baseline source loading, fixture construction, schema precompilation for validation cases, and result-equivalence checks happen outside the measured functions. The two JSONSchex versions share the current benchmark project's external dependencies, intentionally isolating JSONSchex source changes rather than dependency-lock changes.
Environment and measurement
1, without outlier exclusionAfterthenBeforeBeforethenAfter0.5 swarmup,1 sruntime, and0.5 smemory measurement per job1 swarmup,3 sruntime, and1 smemory measurement per jobRun the focused comparison from
bench/:Use
BENCH=inheritedwith the shorter inherited-suite durations above to reproduce only the original 52 cases. The script retains the originallibs_comparison.exsdefaults when duration overrides are omitted:2 swarmup,5 sruntime, and2 smemory measurement.Optimization-focused results
Changes are After relative to Before. Median times and memory values are geometric means across the two opposite-order runs. These synthetic fixtures amplify the changed branch; they measure optimization effectiveness, not the expected speedup of an arbitrary production workload. To deterministically enter the optimized rule-order paths, the P7 and P8 fixtures reorder the already-compiled rules identically in both namespaces before validation; schema compilation itself is outside those timed validation cases.
bundle_p1_structural_depth_400bundle_p2_fallback_anchors_2000bundle_p3_identity_alias_payload_2000compile_p4_scope_reuse_depth_400compile_p4_local_ref_reuse_width_200validate_p5_unicode_long_validcompile_p6_sibling_regex_width_512validate_p7_pattern_cache_width_16validate_p8_anyof_parent_dominated_width_16validate_p9_flat_item_errors_256validate_p12_required_last_missing_128scan_p13_wide_properties_1024Eleven of the twelve focused cases have a lower order-balanced median. P1–P4 show the strongest scaling effects because their inputs deliberately reproduce repeated whole-subtree work. P6 confirms the sibling regex compilation cache. P5, P7–P9, and P12 confirm that the validation changes reduce the cost of the intended long-string, shared-classification, evaluated-key, flat-error, and late-missing-key paths. P5's reported memory rises by only 80 B; Benchee's per-call memory probe should not be read as a complete transient-allocation profile for the discarded Unicode conversion.
The P13 wide-scanner result is effectively flat and slightly slower: when
Afterran first, medians were 6.944 ms Before versus 7.066 ms After; whenBeforeran first, they were 7.080 ms Before versus 7.176 ms After. The balanced 1.55% difference is too small for a strong wall-time claim, while the deterministic memory measurement fell by 4.82%.The Draft-family cold
compiled_defs/1case was removed from this suite. Its write-once:persistent_termlifecycle cannot be represented safely by a Benchee duration loop: repeated cache erasure exhausted OTP 28's literal allocator, while a fresh-child fixed-sample runner made this single case methodologically inconsistent and substantially complicated the otherwise uniform harness. P13 remains represented by the scanner workload, and its dedicated cold-cache measurements remain recorded inPERFORMANCE_CHECKLIST.md.Inherited validation-suite result (52 cases)
The broad conclusion is that validation latency is approximately neutral while reported memory is modestly lower. The changes are not uniform: composition and several invalid-data paths improved, while some evaluated-property, dependent-keyword, format, and large-payload paths became slower.
Inherited category summary
Changes are
Afterrelative toBefore; negative time percentages mean faster. Each category uses an equal-weight geometric mean of its cases.allOf/anyOf/oneOf/not)dependenciesNotable inherited improvements
additional_pattern_validoneof_invalidadditional_pattern_invalidoneof_validanyof_invalidref_invalidsimple_invalidformat_uri_ref_invalidThe additional/pattern-properties cases demonstrate an explicit trade-off: runtime improved by roughly 11–22%, but memory increased because the current implementation builds and reuses pattern-match state.
dependencies_valid, the previously investigated sub-microsecond case, has the same order-balanced median in both versions (0.208 µs). Its balanced average moved from approximately0.271 µsto0.269 µs, but this input remains too short and noisy to support a strong wall-time claim.Observed inherited slower-path candidates
additional_schema_invalidformat_date_validformat_email_invalidformat_email_validadditional_schema_validref_validformat_ipv4_validarray_prefix_contains_validarray_small_validarray_large_validlarge_payload_invalidlarge_payload_validThe larger array and payload changes are above timer quantization but remain modest. They are better follow-up candidates than the sub-microsecond format and dependency cases. The table records the original inherited-suite observations rather than treating every percentage as a confirmed regression.
P7 dispatch follow-up (2026-09-13)
Focused batched probes and temporary historical worktrees subsequently identified one concrete contributor. P7 made every ordinary two-rule schema call
two_rule_pattern_match_cache/3before falling back, adding almost exactly three reductions to repeated non-pattern children such astypeplusminLength.Validator.validate_entry/5now uses exact function heads for the twopatternProperties/additionalPropertiessibling orders, while ordinary two-rule schemas enter the direct execution path, via #12The ordinary two-rule reductions difference against the baseline fell from three per validation to one—the expected private
run_two_rules/7call. A forced-inline experiment reduced that difference to zero but did not improve either the batched microbenchmark orarray_large_valid, so the simpler no-inline implementation was retained. The P7-specific width-16 workload retained its benefit, with an opposite-order balanced median of 163.985 µs Before versus 82.356 µs After (49.78% faster).These focused reruns show partial rather than complete recovery in broader workloads:
array_large_validlarge_payload_validlarge_payload_invalidEach estimate is the median of three fresh opposite-order pairs. These targeted measurements do not regenerate the complete 52-case table above, and their independent runs do not support interpreting small percentage-point differences as exact effect sizes. They do show that narrowing P7 dispatch removed a deterministic ordinary-path cost while the remaining large-payload differences require separate attribution before any additional implementation complexity is justified.
Reading the results safely