Skip to content

Conversation

@dqkqd
Copy link
Contributor

@dqkqd dqkqd commented Nov 22, 2025

Which issue does this PR close?

Rationale for this change

  • Add bench mark for array_slice

What changes are included in this PR?

Bench marks array_slice with:

  • ListArray / ListViewArray
  • array / scalar input
  • with / without stride
  • stride in [-2, -1, 1, 2]

Are these changes tested?

Are there any user-facing changes?

@dqkqd
Copy link
Contributor Author

dqkqd commented Nov 22, 2025

Output from my laptop
Gnuplot not found, using plotters backend
Benchmarking array_slice: input List(nullable Int64), array args: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 17.2s, or reduce sample count to 20.
array_slice: input List(nullable Int64), array args
                        time:   [170.47 ms 170.91 ms 171.34 ms]
                        change: [+0.2627% +0.5206% +0.7664%] (p = 0.00 < 0.05)
                        Change within noise threshold.

Benchmarking array_slice: input List(nullable Int64), array args, no stride: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.5s, or reduce sample count to 50.
array_slice: input List(nullable Int64), array args, no stride
                        time:   [95.180 ms 95.308 ms 95.441 ms]
                        change: [+1.2854% +1.6509% +1.9348%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) high mild

Benchmarking array_slice: input List(nullable Int64), scalar args, no stride: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 22.3s, or reduce sample count to 20.
array_slice: input List(nullable Int64), scalar args, no stride
                        time:   [224.75 ms 224.96 ms 225.18 ms]
                        change: [+3.0075% +3.1445% +3.2627%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking array_slice: input List(nullable Int64), scalar args, stride=-2: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 25.3s, or reduce sample count to 10.
array_slice: input List(nullable Int64), scalar args, stride=-2
                        time:   [255.78 ms 256.49 ms 257.20 ms]
                        change: [−3.2096% −2.6390% −2.0554%] (p = 0.00 < 0.05)
                        Performance has improved.

Benchmarking array_slice: input List(nullable Int64), scalar args, stride=-1: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 41.1s, or reduce sample count to 10.
array_slice: input List(nullable Int64), scalar args, stride=-1
                        time:   [414.70 ms 417.02 ms 420.11 ms]
                        change: [+2.2826% +2.9623% +3.8414%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 5 outliers among 100 measurements (5.00%)
  3 (3.00%) high mild
  2 (2.00%) high severe

Benchmarking array_slice: input List(nullable Int64), scalar args, stride=1: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 23.3s, or reduce sample count to 20.
array_slice: input List(nullable Int64), scalar args, stride=1
                        time:   [232.65 ms 233.57 ms 234.53 ms]
                        change: [+5.8968% +6.3498% +6.8254%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Benchmarking array_slice: input List(nullable Int64), scalar args, stride=2: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 30.9s, or reduce sample count to 10.
array_slice: input List(nullable Int64), scalar args, stride=2
                        time:   [309.36 ms 310.04 ms 310.75 ms]
                        change: [+1.3258% +1.5561% +1.7668%] (p = 0.00 < 0.05)
                        Performance has regressed.

Benchmarking array_slice: input ListView(nullable Int64), array args: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 16.6s, or reduce sample count to 30.
array_slice: input ListView(nullable Int64), array args
                        time:   [165.31 ms 165.73 ms 166.23 ms]
                        change: [−0.4462% −0.1475% +0.1296%] (p = 0.33 > 0.05)
                        No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) high mild
  2 (2.00%) high severe

Benchmarking array_slice: input ListView(nullable Int64), array args, no stride: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 9.3s, or reduce sample count to 50.
array_slice: input ListView(nullable Int64), array args, no stride
                        time:   [93.599 ms 94.775 ms 96.160 ms]
                        change: [+1.2895% +2.5086% +4.0798%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  3 (3.00%) high mild
  7 (7.00%) high severe

Benchmarking array_slice: input ListView(nullable Int64), scalar args, no stride: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 24.1s, or reduce sample count to 20.
array_slice: input ListView(nullable Int64), scalar args, no stride
                        time:   [240.05 ms 242.86 ms 246.48 ms]
                        change: [+4.1354% +6.1737% +8.3447%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  3 (3.00%) high mild
  3 (3.00%) high severe

Benchmarking array_slice: input ListView(nullable Int64), scalar args, stride=-2: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 30.2s, or reduce sample count to 10.
array_slice: input ListView(nullable Int64), scalar args, stride=-2
                        time:   [284.22 ms 285.49 ms 286.83 ms]
                        change: [−2.4554% −1.1084% +0.2609%] (p = 0.11 > 0.05)
                        No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

Benchmarking array_slice: input ListView(nullable Int64), scalar args, stride=-1: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 44.4s, or reduce sample count to 10.
array_slice: input ListView(nullable Int64), scalar args, stride=-1
                        time:   [436.52 ms 437.28 ms 438.09 ms]
                        change: [+0.8673% +1.5822% +2.2087%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

Benchmarking array_slice: input ListView(nullable Int64), scalar args, stride=1: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 25.9s, or reduce sample count to 10.
array_slice: input ListView(nullable Int64), scalar args, stride=1
                        time:   [257.70 ms 258.36 ms 259.05 ms]
                        change: [+0.4657% +2.4476% +4.3710%] (p = 0.01 < 0.05)
                        Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) high mild

Benchmarking array_slice: input ListView(nullable Int64), scalar args, stride=2: Warming up for 3.0000 s
Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 31.1s, or reduce sample count to 10.
array_slice: input ListView(nullable Int64), scalar args, stride=2
                        time:   [312.77 ms 313.68 ms 314.61 ms]
                        change: [−4.7172% −3.3159% −1.9389%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

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.

2 participants