Skip to content

Add a Git-baseline JSONSchex before/after benchmark suite - #13

Merged
xinz merged 2 commits into
mainfrom
bench-1
Sep 14, 2026
Merged

xinz merged 2 commits into
mainfrom
bench-1

Conversation

@xinz

@xinz xinz commented Sep 14, 2026

Copy link
Copy Markdown
Owner

JSONSchex before/after benchmark overview

Date: 2026-09-14

Compared revisions

  • Before: 0e3e2f40603fa5e57eff20ba8913861b10776572, which is 9ab9748c0e4d401426f38bd21b6b4176ab6a017e^
  • After: 3edf5f8bc30fb2f967c5c7539bcd477eafa6b65c, whose merged source tree contains the optimization implementation through 0d1ae09d28ae082a9e00e116cbea14eff5ed8408
  • Range under review: 9ab9748 through current main; merge-only and comment-only commits are not assigned focused cases, and the deferred P10/P11 proposals are excluded

The 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 current lib/**/*.ex sources, and whether Git reports the lib/ tree as dirty. At the time of these measurements, the current lib/ tree matched 3edf5f8, had digest 1a636d7c700240152486af5298651f9d71c4985c097b4aa0d9f80a3ed93928fa, and was not dirty.

Workload inventory

Origin Operation Cases
Frozen pre-scale libs_comparison snapshot Validation 52
Optimization-focused Bundle 3
Optimization-focused Compile 3
Optimization-focused Scan 1
Optimization-focused Validation 5
Total All 64

The 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/**/*.ex source file from the baseline commit, rewrites only the private module namespace from JSONSchex to JSONSchexBaseline, 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-library scale_* cases in bench/libs_comparison.exs are 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

  • macOS, Apple M2 Pro, 10 available cores, 16 GB RAM
  • Elixir 1.19.5
  • Erlang/OTP 28.2, ERTS 16.1.2, JIT enabled
  • Benchee 1.5.1, parallelism: 1, without outlier exclusion
  • Each result set was run in two fresh parent BEAM processes with opposite job order:
    • After then Before
    • Before then After
  • Inherited 52-case run: 0.5 s warmup, 1 s runtime, and 0.5 s memory measurement per job
  • Optimization-focused 12-case run: 1 s warmup, 3 s runtime, and 1 s memory measurement per job
  • Reported per-case values combine the opposite-order runs using their geometric mean, reducing systematic first/second-job bias.

Run the focused comparison from bench/:

BENCH=optimization \
BENCH_ORDER=after_first \
BENCH_WARMUP=1 \
BENCH_TIME=3 \
BENCH_MEMORY_TIME=1 \
VERSION_BENCH_OUTPUT=/tmp/jsonschex-optimization-after-first.tsv \
mix run jsonschex_before_after.exs \
  --baseline 0e3e2f40603fa5e57eff20ba8913861b10776572

BENCH=optimization \
BENCH_ORDER=before_first \
BENCH_WARMUP=1 \
BENCH_TIME=3 \
BENCH_MEMORY_TIME=1 \
VERSION_BENCH_OUTPUT=/tmp/jsonschex-optimization-before-first.tsv \
mix run jsonschex_before_after.exs \
  --baseline 0e3e2f40603fa5e57eff20ba8913861b10776572

Use BENCH=inherited with the shorter inherited-suite durations above to reproduce only the original 52 cases. The script retains the original libs_comparison.exs defaults when duration overrides are omitted: 2 s warmup, 5 s runtime, and 2 s memory 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.

P item Focused case Before median After median Median change Memory before → after
P1 bundle_p1_structural_depth_400 46.543 ms 0.446 ms -99.04% 35,785,632 B → 427,040 B
P2 bundle_p2_fallback_anchors_2000 39.611 ms 0.943 ms -97.62% 30,365,512 B → 1,722,112 B
P3 bundle_p3_identity_alias_payload_2000 13.933 ms 0.749 ms -94.62% 13,299,806 B → 2,060,536 B
P4 compile_p4_scope_reuse_depth_400 727.779 ms 6.860 ms -99.06% 508,783,856 B → 5,141,112 B
P4 compile_p4_local_ref_reuse_width_200 10.628 ms 6.789 ms -36.12% 13,756,632 B → 7,033,672 B
P5 validate_p5_unicode_long_valid 183.185 µs 80.206 µs -56.22% 120 B → 200 B
P6 compile_p6_sibling_regex_width_512 4.796 ms 2.495 ms -47.98% 1,728,320 B → 1,073,816 B
P7 validate_p7_pattern_cache_width_16 178.837 µs 92.394 µs -48.34% 19,832 B → 11,000 B
P8 validate_p8_anyof_parent_dominated_width_16 41.429 µs 12.271 µs -70.38% 26,184 B → 21,472 B
P9 validate_p9_flat_item_errors_256 25.812 µs 14.686 µs -43.11% 98,472 B → 90,256 B
P12 validate_p12_required_last_missing_128 9.457 µs 5.158 µs -45.46% 400 B → 320 B
P13 scan_p13_wide_properties_1024 7.012 ms 7.121 ms +1.55% 5,276,752 B → 5,022,592 B

Eleven 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 After ran first, medians were 6.944 ms Before versus 7.066 ms After; when Before ran 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/1 case was removed from this suite. Its write-once :persistent_term lifecycle 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 in PERFORMANCE_CHECKLIST.md.

Inherited validation-suite result (52 cases)

Metric Result Interpretation
Order-balanced median geometric mean 0.73% slower Effectively flat across the broad, equally weighted suite
Order-balanced average geometric mean 3.89% slower More affected by scheduler and GC outliers, especially for sub-microsecond cases
Median cases faster by more than 2% 13 / 52 Concentrated in composition, pattern properties, and invalid-data paths
Median cases within ±2% 18 / 52 No material movement at this benchmark resolution
Median cases slower by more than 2% 21 / 52 Includes several very short/quantized cases and some larger workloads requiring follow-up
Memory geometric mean 2.14% lower Broad memory improvement
Memory lower / unchanged / higher 26 / 23 / 3 The only increases are three additional/pattern-properties 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 After relative to Before; negative time percentages mean faster. Each category uses an equal-weight geometric mean of its cases.

Category Cases Average time Median time Memory lower / same / higher
Simple constraints 2 +0.14% -3.50% 1 / 1 / 0
Nested objects 2 -1.09% +0.05% 1 / 1 / 0
References 2 +2.28% +1.28% 1 / 1 / 0
Arrays 7 +2.56% +3.07% 3 / 4 / 0
Applicators (allOf/anyOf/oneOf/not) 8 +1.02% -4.31% 6 / 2 / 0
Conditionals 3 +6.45% +1.80% 1 / 2 / 0
Additional/pattern properties 4 -4.06% -2.49% 1 / 0 / 3
Unevaluated properties 3 +9.50% -0.02% 1 / 2 / 0
Dependent keywords 3 +13.13% +0.37% 2 / 1 / 0
Large payload 2 +4.00% +3.81% 1 / 1 / 0
Property names 2 +4.06% +2.54% 1 / 1 / 0
Formats 12 +7.18% +4.10% 6 / 6 / 0
Legacy dependencies 2 +2.25% -0.30% 1 / 1 / 0

Notable inherited improvements

Case Before median After median Change Before memory After memory
additional_pattern_valid 2.854 µs 2.217 µs -22.31% 1,600 B 2,088 B
oneof_invalid 1.041 µs 0.874 µs -16.06% 3,336 B 2,960 B
additional_pattern_invalid 1.750 µs 1.560 µs -10.88% 1,400 B 1,544 B
oneof_valid 0.954 µs 0.874 µs -8.42% 2,752 B 2,656 B
anyof_invalid 0.812 µs 0.750 µs -7.66% 2,544 B 2,256 B
ref_invalid 1.458 µs 1.354 µs -7.10% 3,152 B 3,096 B
simple_invalid 0.604 µs 0.562 µs -6.88% 496 B 440 B
format_uri_ref_invalid 1.479 µs 1.395 µs -5.65% 1,320 B 1,264 B

The 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 approximately 0.271 µs to 0.269 µs, but this input remains too short and noisy to support a strong wall-time claim.

Observed inherited slower-path candidates

Case Before median After median Change Before memory After memory
additional_schema_invalid 0.354 µs 0.416 µs +17.55% 1,384 B 1,424 B
format_date_valid 0.125 µs 0.144 µs +15.24% 568 B 568 B
format_email_invalid 0.186 µs 0.208 µs +11.60% 440 B 384 B
format_email_valid 0.729 µs 0.812 µs +11.39% 1,112 B 1,112 B
additional_schema_valid 0.750 µs 0.833 µs +11.07% 1,832 B 1,728 B
ref_valid 2.979 µs 3.289 µs +10.41% 6,632 B 6,632 B
format_ipv4_valid 0.208 µs 0.229 µs +9.90% 752 B 752 B
array_prefix_contains_valid 0.500 µs 0.541 µs +8.20% 2,264 B 2,264 B
array_small_valid 2.706 µs 2.896 µs +7.03% 7,728 B 7,728 B
array_large_valid 30.913 µs 32.881 µs +6.37% 75,544 B 75,544 B
large_payload_invalid 116.083 µs 120.871 µs +4.12% 249,880 B 249,376 B
large_payload_valid 144.740 µs 149.787 µs +3.49% 285,312 B 285,312 B

The 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/3 before falling back, adding almost exactly three reductions to repeated non-pattern children such as type plus minLength. Validator.validate_entry/5 now uses exact function heads for the two patternProperties/additionalProperties sibling orders, while ordinary two-rule schemas enter the direct execution path, via #12

The ordinary two-rule reductions difference against the baseline fell from three per validation to one—the expected private run_two_rules/7 call. A forced-inline experiment reduced that difference to zero but did not improve either the batched microbenchmark or array_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:

Case Pre-follow-up estimate Post-follow-up estimate Interpretation
array_large_valid +2.96% +1.76% Central estimate improved; three no-inline balanced pairs ranged from +1.51% to +2.72%
large_payload_valid +4.86% +4.13% Modest improvement; likely still approximately 3–4% slower
large_payload_invalid +4.14% +3.75% Modest improvement; the two lower-noise pairs closely agreed

Each 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

  • Benchee comparisons are based on averages, but several sub-microsecond jobs show deviations in the thousands of percent. Their medians are more stable but quantized to common timer steps such as approximately 41–42 ns.
  • Reversing job order materially changed some averages. The order-balanced summary is therefore more representative than either individual run.
  • The category and overall geometric means give every case equal weight; they are not intended to model a particular production traffic distribution.
  • The inherited 52-case aggregate measures validation only. Compiler, bundling, scanner, regex-cache, and built-in-schema changes are represented only by the separate focused cases above.
  • Memory values are more deterministic in these runs than wall time. They represent one synthetic operation under Benchee's memory collector, not a complete allocation or retained-process profile.

@xinz

xinz commented Sep 14, 2026 •

Copy link
Copy Markdown
Owner Author
Comparison results
mix run jsonschex_before_after.exs --baseline 0e3e2f40603fa5e57eff20ba8913861b10776572
Before: 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!
============================================================

@xinz
xinz merged commit f0ac562 into main Sep 14, 2026
1 check passed
@xinz
xinz deleted the bench-1 branch September 14, 2026 05:19
@xinz xinz changed the title Add jsonschex self before and after comparsion Add a Git-baseline JSONSchex before/after benchmark suite Sep 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant