Skip to content

feat: introduce benchmarking#10

Merged
latonis merged 2 commits into
mainfrom
jl/benchmarking
Apr 21, 2026
Merged

feat: introduce benchmarking#10
latonis merged 2 commits into
mainfrom
jl/benchmarking

Conversation

@latonis

@latonis latonis commented Apr 21, 2026

Copy link
Copy Markdown
Owner

No description provided.

@latonis
latonis merged commit aefbdd5 into main Apr 21, 2026
1 check passed
@github-actions

Copy link
Copy Markdown

Benchmark Results

�[1m�[92m    Finished�[0m `bench` profile [optimized] target(s) in 0.04s
�[1m�[92m     Running�[0m benches/flatten.rs (target/release/deps/flatten-b72b2269b3f7e6a0)
Gnuplot not found, using plotters backend
Benchmarking flatten_inputs/default/small
Benchmarking flatten_inputs/default/small: Warming up for 3.0000 s
Benchmarking flatten_inputs/default/small: Collecting 100 samples in estimated 5.0061 s (3.8M iterations)
Benchmarking flatten_inputs/default/small: Analyzing
flatten_inputs/default/small
                        time:   [1.3311 µs 1.3365 µs 1.3426 µs]
                        thrpt:  [744.80 Kelem/s 748.25 Kelem/s 751.25 Kelem/s]
                 change:
                        time:   [+0.4288% +0.9127% +1.3204%] (p = 0.00 < 0.05)
                        thrpt:  [-1.3032% -0.9045% -0.4269%]
                        Change within noise threshold.
Found 24 outliers among 100 measurements (24.00%)
  19 (19.00%) low severe
  1 (1.00%) low mild
  3 (3.00%) high mild
  1 (1.00%) high severe
Benchmarking flatten_inputs/preserve_arrays/small
Benchmarking flatten_inputs/preserve_arrays/small: Warming up for 3.0000 s
Benchmarking flatten_inputs/preserve_arrays/small: Collecting 100 samples in estimated 5.0065 s (3.5M iterations)
Benchmarking flatten_inputs/preserve_arrays/small: Analyzing
flatten_inputs/preserve_arrays/small
                        time:   [1.4493 µs 1.4529 µs 1.4569 µs]
                        thrpt:  [686.39 Kelem/s 688.29 Kelem/s 690.00 Kelem/s]
                 change:
                        time:   [-0.5572% +0.7601% +1.6162%] (p = 0.20 > 0.05)
                        thrpt:  [-1.5905% -0.7544% +0.5603%]
                        No change in performance detected.
Found 14 outliers among 100 measurements (14.00%)
  11 (11.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe
Benchmarking flatten_inputs/alt_array_flattening/small
Benchmarking flatten_inputs/alt_array_flattening/small: Warming up for 3.0000 s
Benchmarking flatten_inputs/alt_array_flattening/small: Collecting 100 samples in estimated 5.0051 s (3.5M iterations)
Benchmarking flatten_inputs/alt_array_flattening/small: Analyzing
flatten_inputs/alt_array_flattening/small
                        time:   [1.4693 µs 1.4699 µs 1.4705 µs]
                        thrpt:  [680.05 Kelem/s 680.33 Kelem/s 680.59 Kelem/s]
                 change:
                        time:   [+1.4686% +2.0169% +2.4578%] (p = 0.00 < 0.05)
                        thrpt:  [-2.3989% -1.9770% -1.4474%]
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) high mild
  4 (4.00%) high severe
Benchmarking flatten_inputs/default/medium
Benchmarking flatten_inputs/default/medium: Warming up for 3.0000 s
Benchmarking flatten_inputs/default/medium: Collecting 100 samples in estimated 5.1305 s (81k iterations)
Benchmarking flatten_inputs/default/medium: Analyzing
flatten_inputs/default/medium
                        time:   [63.853 µs 63.893 µs 63.934 µs]
                        thrpt:  [15.641 Kelem/s 15.651 Kelem/s 15.661 Kelem/s]
                 change:
                        time:   [-0.7688% +1.6164% +2.9903%] (p = 0.11 > 0.05)
                        thrpt:  [-2.9035% -1.5907% +0.7748%]
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) high mild
Benchmarking flatten_inputs/preserve_arrays/medium
Benchmarking flatten_inputs/preserve_arrays/medium: Warming up for 3.0000 s
Benchmarking flatten_inputs/preserve_arrays/medium: Collecting 100 samples in estimated 5.1457 s (81k iterations)
Benchmarking flatten_inputs/preserve_arrays/medium: Analyzing
flatten_inputs/preserve_arrays/medium
                        time:   [64.218 µs 64.263 µs 64.322 µs]
                        thrpt:  [15.547 Kelem/s 15.561 Kelem/s 15.572 Kelem/s]
                 change:
                        time:   [+1.1541% +1.7373% +2.1565%] (p = 0.00 < 0.05)
                        thrpt:  [-2.1110% -1.7076% -1.1410%]
                        Performance has regressed.
Found 7 outliers among 100 measurements (7.00%)
  4 (4.00%) high mild
  3 (3.00%) high severe
Benchmarking flatten_inputs/alt_array_flattening/medium
Benchmarking flatten_inputs/alt_array_flattening/medium: Warming up for 3.0000 s
Benchmarking flatten_inputs/alt_array_flattening/medium: Collecting 100 samples in estimated 5.1447 s (81k iterations)
Benchmarking flatten_inputs/alt_array_flattening/medium: Analyzing
flatten_inputs/alt_array_flattening/medium
                        time:   [63.591 µs 63.670 µs 63.772 µs]
                        thrpt:  [15.681 Kelem/s 15.706 Kelem/s 15.726 Kelem/s]
                 change:
                        time:   [-1.3872% -0.8440% -0.3988%] (p = 0.00 < 0.05)
                        thrpt:  [+0.4004% +0.8512% +1.4067%]
                        Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) high mild
Benchmarking flatten_inputs/default/large
Benchmarking flatten_inputs/default/large: Warming up for 3.0000 s

Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.0s, enable flat sampling, or reduce sample count to 50.
Benchmarking flatten_inputs/default/large: Collecting 100 samples in estimated 8.9707 s (5050 iterations)
Benchmarking flatten_inputs/default/large: Analyzing
flatten_inputs/default/large
                        time:   [1.7846 ms 1.7873 ms 1.7906 ms]
                        thrpt:  [558.47  elem/s 559.51  elem/s 560.35  elem/s]
                 change:
                        time:   [+12.328% +12.946% +13.482%] (p = 0.00 < 0.05)
                        thrpt:  [-11.881% -11.462% -10.975%]
                        Performance has regressed.
Found 17 outliers among 100 measurements (17.00%)
  7 (7.00%) high mild
  10 (10.00%) high severe
Benchmarking flatten_inputs/preserve_arrays/large
Benchmarking flatten_inputs/preserve_arrays/large: Warming up for 3.0000 s

Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.0s, enable flat sampling, or reduce sample count to 50.
Benchmarking flatten_inputs/preserve_arrays/large: Collecting 100 samples in estimated 8.9937 s (5050 iterations)
Benchmarking flatten_inputs/preserve_arrays/large: Analyzing
flatten_inputs/preserve_arrays/large
                        time:   [1.7903 ms 1.7915 ms 1.7930 ms]
                        thrpt:  [557.73  elem/s 558.18  elem/s 558.57  elem/s]
                 change:
                        time:   [+17.941% +18.208% +18.467%] (p = 0.00 < 0.05)
                        thrpt:  [-15.588% -15.403% -15.212%]
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
Benchmarking flatten_inputs/alt_array_flattening/large
Benchmarking flatten_inputs/alt_array_flattening/large: Warming up for 3.0000 s

Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.0s, enable flat sampling, or reduce sample count to 50.
Benchmarking flatten_inputs/alt_array_flattening/large: Collecting 100 samples in estimated 9.0031 s (5050 iterations)
Benchmarking flatten_inputs/alt_array_flattening/large: Analyzing
flatten_inputs/alt_array_flattening/large
                        time:   [1.8087 ms 1.8119 ms 1.8146 ms]
                        thrpt:  [551.10  elem/s 551.92  elem/s 552.89  elem/s]
                 change:
                        time:   [+18.642% +19.253% +19.670%] (p = 0.00 < 0.05)
                        thrpt:  [-16.437% -16.144% -15.713%]
                        Performance has regressed.

Benchmarking flatten_collisions/collisions_default/10
Benchmarking flatten_collisions/collisions_default/10: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_default/10: Collecting 100 samples in estimated 5.0072 s (2.1M iterations)
Benchmarking flatten_collisions/collisions_default/10: Analyzing
flatten_collisions/collisions_default/10
                        time:   [2.4151 µs 2.4200 µs 2.4257 µs]
                        thrpt:  [412.26 Kelem/s 413.23 Kelem/s 414.06 Kelem/s]
                 change:
                        time:   [-2.9368% -2.2834% -1.7070%] (p = 0.00 < 0.05)
                        thrpt:  [+1.7367% +2.3367% +3.0257%]
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe
Benchmarking flatten_collisions/collisions_alt_flatten/10
Benchmarking flatten_collisions/collisions_alt_flatten/10: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_alt_flatten/10: Collecting 100 samples in estimated 5.0113 s (2.1M iterations)
Benchmarking flatten_collisions/collisions_alt_flatten/10: Analyzing
flatten_collisions/collisions_alt_flatten/10
                        time:   [2.3258 µs 2.3298 µs 2.3349 µs]
                        thrpt:  [428.29 Kelem/s 429.23 Kelem/s 429.96 Kelem/s]
                 change:
                        time:   [-2.6110% -2.0978% -1.6069%] (p = 0.00 < 0.05)
                        thrpt:  [+1.6331% +2.1427% +2.6810%]
                        Performance has improved.
Benchmarking flatten_collisions/collisions_default/100
Benchmarking flatten_collisions/collisions_default/100: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_default/100: Collecting 100 samples in estimated 5.0213 s (217k iterations)
Benchmarking flatten_collisions/collisions_default/100: Analyzing
flatten_collisions/collisions_default/100
                        time:   [23.531 µs 23.622 µs 23.714 µs]
                        thrpt:  [42.169 Kelem/s 42.333 Kelem/s 42.497 Kelem/s]
                 change:
                        time:   [+2.8760% +3.2858% +3.7343%] (p = 0.00 < 0.05)
                        thrpt:  [-3.5999% -3.1813% -2.7956%]
                        Performance has regressed.
Found 12 outliers among 100 measurements (12.00%)
  6 (6.00%) low mild
  3 (3.00%) high mild
  3 (3.00%) high severe
Benchmarking flatten_collisions/collisions_alt_flatten/100
Benchmarking flatten_collisions/collisions_alt_flatten/100: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_alt_flatten/100: Collecting 100 samples in estimated 5.0016 s (217k iterations)
Benchmarking flatten_collisions/collisions_alt_flatten/100: Analyzing
flatten_collisions/collisions_alt_flatten/100
                        time:   [23.429 µs 23.467 µs 23.508 µs]
                        thrpt:  [42.538 Kelem/s 42.612 Kelem/s 42.682 Kelem/s]
                 change:
                        time:   [+1.5367% +2.2788% +2.7475%] (p = 0.00 < 0.05)
                        thrpt:  [-2.6741% -2.2280% -1.5134%]
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
Benchmarking flatten_collisions/collisions_default/1000
Benchmarking flatten_collisions/collisions_default/1000: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_default/1000: Collecting 100 samples in estimated 5.6655 s (25k iterations)
Benchmarking flatten_collisions/collisions_default/1000: Analyzing
flatten_collisions/collisions_default/1000
                        time:   [226.26 µs 227.10 µs 228.00 µs]
                        thrpt:  [4.3859 Kelem/s 4.4034 Kelem/s 4.4197 Kelem/s]
                 change:
                        time:   [-0.4200% -0.1116% +0.1614%] (p = 0.47 > 0.05)
                        thrpt:  [-0.1611% +0.1117% +0.4218%]
                        No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
  13 (13.00%) low severe
Benchmarking flatten_collisions/collisions_alt_flatten/1000
Benchmarking flatten_collisions/collisions_alt_flatten/1000: Warming up for 3.0000 s
Benchmarking flatten_collisions/collisions_alt_flatten/1000: Collecting 100 samples in estimated 5.7454 s (25k iterations)
Benchmarking flatten_collisions/collisions_alt_flatten/1000: Analyzing
flatten_collisions/collisions_alt_flatten/1000
                        time:   [222.00 µs 222.63 µs 223.39 µs]
                        thrpt:  [4.4765 Kelem/s 4.4918 Kelem/s 4.5045 Kelem/s]
                 change:
                        time:   [-0.0038% +0.5068% +1.0022%] (p = 0.05 < 0.05)
                        thrpt:  [-0.9922% -0.5042% +0.0038%]
                        Change within noise threshold.



Benchmarked on commit 59c1eceb37ddff68360e50d9450540b55823345a

@latonis
latonis deleted the jl/benchmarking branch April 22, 2026 01:16
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