Closed kkebo closed 1 year ago
Benchmark results
============================================================================================================
Comparing results between 'main' and 'macros'
============================================================================================================
Host 'Xylotrupes-gideon.local' with 8 'arm64' processors with 8 GB memory, running:
Darwin Kernel Version 23.0.0: Fri Jun 30 17:48:23 PDT 2023; root:xnu-10002.0.168.505.3~1/RELEASE_ARM64_T8103
MyBenchmark
============================================================================================================================
----------------------------------------------------------------------------------------------------------------------------
TokenizerBenchmark metrics
----------------------------------------------------------------------------------------------------------------------------
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (wall clock) (μs) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 12 │ 12 │ 12 │ 12 │ 12 │ 16 │ 40 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ macros │ 12 │ 12 │ 12 │ 12 │ 12 │ 12 │ 35 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 0 │ 0 │ 0 │ 0 │ -4 │ -5 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ 0 │ 0 │ 0 │ 0 │ 25 │ 13 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (total CPU) (μs) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 12 │ 12 │ 12 │ 12 │ 12 │ 17 │ 38 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ macros │ 12 │ 12 │ 12 │ 12 │ 12 │ 13 │ 35 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 0 │ 0 │ 0 │ 0 │ -4 │ -3 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ 0 │ 0 │ 0 │ 0 │ 24 │ 8 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Throughput (# / s) (K) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 83 │ 82 │ 81 │ 81 │ 81 │ 60 │ 24 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ macros │ 82 │ 81 │ 81 │ 81 │ 81 │ 78 │ 28 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ -1 │ -1 │ 0 │ 0 │ 0 │ 18 │ 4 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ -1 │ -1 │ 0 │ 0 │ 0 │ 30 │ 17 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Memory (resident peak) (K) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 8011 │ 8032 │ 8044 │ 8044 │ 8044 │ 8044 │ 8044 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ macros │ 8765 │ 8790 │ 8798 │ 8798 │ 8798 │ 8798 │ 8798 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 754 │ 758 │ 754 │ 754 │ 754 │ 754 │ 754 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ -9 │ -9 │ -9 │ -9 │ -9 │ -9 │ -9 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Malloc (total) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 8 │ 8 │ 8 │ 8 │ 8 │ 8 │ 8 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ macros │ 8 │ 8 │ 8 │ 8 │ 8 │ 8 │ 8 │ 10000 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
I rebased the branch, so I ran benchmarks again.
============================================================================================================
Comparing results between 'main' and 'Current run'
============================================================================================================
Host 'Xylotrupes-gideon.local' with 8 'arm64' processors with 8 GB memory, running:
Darwin Kernel Version 23.0.0: Fri Jun 30 17:48:23 PDT 2023; root:xnu-10002.0.168.505.3~1/RELEASE_ARM64_T8103
MyBenchmark
============================================================================================================================
----------------------------------------------------------------------------------------------------------------------------
TokenizerBenchmark metrics
----------------------------------------------------------------------------------------------------------------------------
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (wall clock) (ms) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 28 │ 28 │ 28 │ 29 │ 29 │ 30 │ 30 │ 35 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 17 │ 17 │ 17 │ 17 │ 17 │ 17 │ 17 │ 57 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ -11 │ -11 │ -11 │ -12 │ -12 │ -13 │ -13 │ 22 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 39 │ 39 │ 39 │ 41 │ 41 │ 43 │ 43 │ 22 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (total CPU) (ms) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 28 │ 28 │ 28 │ 29 │ 29 │ 30 │ 30 │ 35 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 17 │ 17 │ 17 │ 17 │ 17 │ 17 │ 17 │ 57 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ -11 │ -11 │ -11 │ -12 │ -12 │ -13 │ -13 │ 22 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 39 │ 39 │ 39 │ 41 │ 41 │ 43 │ 43 │ 22 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Throughput (# / s) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 35 │ 35 │ 35 │ 34 │ 34 │ 33 │ 33 │ 35 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 58 │ 57 │ 57 │ 57 │ 56 │ 56 │ 56 │ 57 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 23 │ 22 │ 22 │ 23 │ 22 │ 23 │ 23 │ 22 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 66 │ 63 │ 63 │ 68 │ 65 │ 70 │ 70 │ 22 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Memory (resident peak) (K) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 8798 │ 8830 │ 8830 │ 8830 │ 8830 │ 8830 │ 8830 │ 35 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 9961 │ 9977 │ 9977 │ 9977 │ 9977 │ 9977 │ 9977 │ 57 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 1163 │ 1147 │ 1147 │ 1147 │ 1147 │ 1147 │ 1147 │ 22 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ -13 │ -13 │ -13 │ -13 │ -13 │ -13 │ -13 │ 22 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Malloc (total) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 35 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 57 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 22 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 22 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
Latest benchmark results:
============================================================================================================
Comparing results between 'main' and 'Current run'
============================================================================================================
Host 'Xylotrupes-gideon.local' with 8 'arm64' processors with 8 GB memory, running:
Darwin Kernel Version 23.0.0: Fri Jun 30 17:48:23 PDT 2023; root:xnu-10002.0.168.505.3~1/RELEASE_ARM64_T8103
MyBenchmark
============================================================================================================================
----------------------------------------------------------------------------------------------------------------------------
TokenizerBenchmark metrics
----------------------------------------------------------------------------------------------------------------------------
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (wall clock) (ms) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 17 │ 17 │ 17 │ 17 │ 18 │ 19 │ 19 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 17 │ 18 │ 18 │ 18 │ 18 │ 18 │ 18 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 1 │ 1 │ 1 │ 0 │ -1 │ -1 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ -6 │ -6 │ -6 │ 0 │ 5 │ 5 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Time (total CPU) (ms) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 17 │ 17 │ 17 │ 17 │ 18 │ 19 │ 19 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 17 │ 18 │ 18 │ 18 │ 18 │ 18 │ 18 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 1 │ 1 │ 1 │ 0 │ -1 │ -1 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ -6 │ -6 │ -6 │ 0 │ 5 │ 5 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Throughput (# / s) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 57 │ 57 │ 56 │ 56 │ 55 │ 52 │ 52 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 56 │ 56 │ 55 │ 55 │ 55 │ 55 │ 55 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ -1 │ -1 │ -1 │ -1 │ 0 │ 3 │ 3 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ -2 │ -2 │ -2 │ -2 │ 0 │ 6 │ 6 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Memory (resident peak) (M) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 10 │ 10 │ 10 │ 10 │ 10 │ 10 │ 10 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 9 │ 10 │ 10 │ 10 │ 10 │ 10 │ 10 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ -1 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 10 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
╒══════════════════════════════════════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╤═════════╕
│ Malloc (total) │ p0 │ p25 │ p50 │ p75 │ p90 │ p99 │ p100 │ Samples │
╞══════════════════════════════════════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╪═════════╡
│ main │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Current run │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 23 │ 56 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Δ │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
├──────────────────────────────────────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Improvement % │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │ 0 │
╘══════════════════════════════════════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╧═════════╛
The code item macro is still experimental, but it can eliminate explicit returns. That prevents human errors.