Skip to content

Optimize batched bit unpacking - #11027

Draft
sdf-jkl wants to merge 1 commit into
apache:mainfrom
sdf-jkl:unpack_batch
Draft

Optimize batched bit unpacking#11027
sdf-jkl wants to merge 1 commit into
apache:mainfrom
sdf-jkl:unpack_batch

Conversation

@sdf-jkl

@sdf-jkl sdf-jkl commented Sep 8, 2026

Copy link
Copy Markdown
Member

Which issue does this PR close?

Rationale for this change

BitReader::get_batch currently performs runtime bit-width dispatch for every complete native unpack block. For larger batches, this repeatedly enters the same jump table even though the bit width is constant for the entire call.

What changes are included in this PR?

  • Add multi-block unpack functions that dispatch on bit width once, then loop over const-generic unpack blocks.
  • Add a provided FromBitpacked::unpack_batches fallback and optimized implementations for the built-in integer, signed integer, and boolean types.
  • Route multiple complete blocks through the batched path while retaining the existing direct path for exactly one block and all existing smaller-block and scalar tail handling.
  • Preserve the zero-width behavior without allocating intermediate buffers.

This is intentionally limited to unpacking. The related packing work remains separate.

Are these changes tested?

Yes. Existing get_batch tests exhaustively cover supported bit widths, signed and unsigned integer types, booleans, zero width, and batch sizes including 128 and 129 values that exercise the multi-block path.

Validated locally with:

  • cargo test -p parquet --features experimental --lib (1,374 passed)
  • cargo clippy -p parquet --all-targets --features experimental -- -D warnings
  • workspace cargo fmt check
  • the separate Parquet cargo fmt check

Benchmark results will be added before this draft is marked ready. Earlier exploratory results were collected from a mixed development branch and are deliberately not attributed to this smaller patch.

Are there any user-facing changes?

No behavior changes are intended. FromBitpacked gains a provided method, so existing implementations remain source-compatible.

@github-actions github-actions Bot added the parquet Changes to the parquet crate label Sep 8, 2026
@sdf-jkl

sdf-jkl commented Sep 8, 2026

Copy link
Copy Markdown
Member Author

run benchmark arrow_reader alp arrow_reader_clickbench

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5590712651-2225-hcrf2 6.12.94+ #1 SMP Fri Jul 17 09:42:57 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark arrow_reader

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5590712651-2226-dmqz9 6.12.94+ #1 SMP Fri Jul 17 09:42:57 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark alp

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench alp
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5590712651-2227-lvw9l 6.12.94+ #1 SMP Fri Jul 17 09:42:57 UTC 2026 aarch64 GNU/Linux

CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark arrow_reader_clickbench

BENCH_COMMAND=cargo bench --features=arrow,async,test_common,experimental,object_store --bench arrow_reader_clickbench
Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark alp
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

group                                                main                                     unpack_batch
-----                                                ----                                     ------------
alp/decode/page/f32/decimal_with_exceptions          1.04     96.2±0.09µs 1298.8 MElem/sec    1.00     92.7±0.18µs 1347.9 MElem/sec
alp/decode/page/f32/high_precision                   1.03    118.0±0.20µs 1059.7 MElem/sec    1.00    114.1±0.17µs 1095.7 MElem/sec
alp/decode/page/f64/decimal_with_exceptions          1.05     66.8±0.13µs 1871.2 MElem/sec    1.00     63.6±0.30µs 1964.0 MElem/sec
alp/decode/page/f64/high_precision                   1.01    178.1±0.48µs 701.9 MElem/sec     1.00    176.0±0.58µs 710.2 MElem/sec
alp/decode/random_100/f32/decimal_with_exceptions    1.00     36.5±0.25µs  2.6 MElem/sec      1.00     36.4±0.18µs  2.6 MElem/sec
alp/decode/random_100/f32/high_precision             1.02     47.2±0.27µs  2.0 MElem/sec      1.00     46.1±0.31µs  2.1 MElem/sec
alp/decode/random_100/f64/decimal_with_exceptions    1.03     21.7±0.13µs  4.4 MElem/sec      1.00     21.1±0.14µs  4.5 MElem/sec
alp/decode/random_100/f64/high_precision             1.00     60.5±0.18µs 1615.4 KElem/sec    1.00     60.4±0.27µs 1616.2 KElem/sec
alp/encode/first_page/f32/decimal_with_exceptions    1.01  1116.5±19.72µs 112.0 MElem/sec     1.00  1110.0±20.81µs 112.6 MElem/sec
alp/encode/first_page/f32/high_precision             1.00  1137.4±11.49µs 109.9 MElem/sec     1.00  1136.2±13.22µs 110.0 MElem/sec
alp/encode/first_page/f64/decimal_with_exceptions    1.00   1519.0±6.77µs 82.3 MElem/sec      1.00   1521.5±6.13µs 82.2 MElem/sec
alp/encode/first_page/f64/high_precision             1.00      2.6±0.01ms 48.7 MElem/sec      1.00      2.6±0.02ms 48.6 MElem/sec
alp/encode/next_page/f32/decimal_with_exceptions     1.00    648.5±5.09µs 192.7 MElem/sec     1.00    651.5±6.32µs 191.9 MElem/sec
alp/encode/next_page/f32/high_precision              1.00    780.7±9.75µs 160.1 MElem/sec     1.01   785.7±13.18µs 159.1 MElem/sec
alp/encode/next_page/f64/decimal_with_exceptions     1.00    542.4±4.45µs 230.5 MElem/sec     1.00    543.7±5.59µs 229.9 MElem/sec
alp/encode/next_page/f64/high_precision              1.00   1695.4±7.03µs 73.7 MElem/sec      1.00   1690.8±5.87µs 73.9 MElem/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 170.0s
Peak memory 126.2 MiB
Avg memory 15.9 MiB
CPU user 163.1s
CPU sys 1.8s
Peak spill 0 B

branch

Metric Value
Wall time 165.0s
Peak memory 121.3 MiB
Avg memory 16.1 MiB
CPU user 161.3s
CPU sys 1.9s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark arrow_reader_clickbench
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

group                                             main                                   unpack_batch
-----                                             ----                                   ------------
arrow_reader_clickbench/async/Q1                  1.00  1093.4±16.33µs        ? ?/sec    1.00   1092.9±4.77µs        ? ?/sec
arrow_reader_clickbench/async/Q10                 1.00      5.8±0.04ms        ? ?/sec    1.01      5.9±0.03ms        ? ?/sec
arrow_reader_clickbench/async/Q11                 1.01      6.9±0.05ms        ? ?/sec    1.00      6.9±0.05ms        ? ?/sec
arrow_reader_clickbench/async/Q12                 1.00     13.2±0.05ms        ? ?/sec    1.00     13.1±0.06ms        ? ?/sec
arrow_reader_clickbench/async/Q13                 1.00     15.8±0.09ms        ? ?/sec    1.00     15.8±0.11ms        ? ?/sec
arrow_reader_clickbench/async/Q14                 1.00     14.6±0.06ms        ? ?/sec    1.00     14.6±0.07ms        ? ?/sec
arrow_reader_clickbench/async/Q19                 1.02      3.1±0.02ms        ? ?/sec    1.00      3.0±0.04ms        ? ?/sec
arrow_reader_clickbench/async/Q20                 1.00     73.8±0.43ms        ? ?/sec    1.13     83.2±0.44ms        ? ?/sec
arrow_reader_clickbench/async/Q21                 1.00     82.0±0.44ms        ? ?/sec    1.16    95.1±11.23ms        ? ?/sec
arrow_reader_clickbench/async/Q22                 1.00    109.1±1.16ms        ? ?/sec    1.02    111.8±9.37ms        ? ?/sec
arrow_reader_clickbench/async/Q23                 1.00    249.5±1.69ms        ? ?/sec    1.00    249.0±1.52ms        ? ?/sec
arrow_reader_clickbench/async/Q24                 1.00     18.0±0.11ms        ? ?/sec    1.00     17.9±0.10ms        ? ?/sec
arrow_reader_clickbench/async/Q27                 1.01     58.2±0.49ms        ? ?/sec    1.00     57.7±0.33ms        ? ?/sec
arrow_reader_clickbench/async/Q28                 1.00     57.0±0.63ms        ? ?/sec    1.01     57.3±0.34ms        ? ?/sec
arrow_reader_clickbench/async/Q30                 1.01     17.5±0.07ms        ? ?/sec    1.00     17.4±0.06ms        ? ?/sec
arrow_reader_clickbench/async/Q36                 1.01     14.6±0.22ms        ? ?/sec    1.00     14.5±0.22ms        ? ?/sec
arrow_reader_clickbench/async/Q37                 1.01      5.0±0.03ms        ? ?/sec    1.00      5.0±0.02ms        ? ?/sec
arrow_reader_clickbench/async/Q38                 1.01     13.2±0.24ms        ? ?/sec    1.00     13.1±0.24ms        ? ?/sec
arrow_reader_clickbench/async/Q39                 1.01     24.6±0.49ms        ? ?/sec    1.00     24.4±0.42ms        ? ?/sec
arrow_reader_clickbench/async/Q40                 1.01      5.3±0.06ms        ? ?/sec    1.00      5.2±0.04ms        ? ?/sec
arrow_reader_clickbench/async/Q41                 1.00      4.6±0.03ms        ? ?/sec    1.00      4.6±0.03ms        ? ?/sec
arrow_reader_clickbench/async/Q42                 1.01      3.4±0.02ms        ? ?/sec    1.00      3.3±0.02ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q1     1.00   1062.8±3.85µs        ? ?/sec    1.00   1062.8±4.26µs        ? ?/sec
arrow_reader_clickbench/async_object_store/Q10    1.00      5.7±0.03ms        ? ?/sec    1.00      5.7±0.04ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q11    1.01      6.7±0.04ms        ? ?/sec    1.00      6.7±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q12    1.00     13.1±0.05ms        ? ?/sec    1.00     13.0±0.06ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q13    1.01     15.6±0.09ms        ? ?/sec    1.00     15.6±0.12ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q14    1.00     14.6±0.06ms        ? ?/sec    1.00     14.5±0.07ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q19    1.01      2.9±0.02ms        ? ?/sec    1.00      2.9±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q20    1.00     72.4±0.74ms        ? ?/sec    1.00     72.6±0.56ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q21    1.00     81.3±0.58ms        ? ?/sec    1.00     81.0±1.13ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q22    1.00     98.9±0.67ms        ? ?/sec    1.01    100.3±0.63ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q23    1.02   234.9±13.02ms        ? ?/sec    1.00    229.5±0.59ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q24    1.00     17.6±0.10ms        ? ?/sec    1.00     17.7±0.10ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q27    1.01     57.1±0.74ms        ? ?/sec    1.00     56.4±0.56ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q28    1.00     56.3±0.66ms        ? ?/sec    1.00     56.1±0.59ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q30    1.00     17.0±0.06ms        ? ?/sec    1.00     17.0±0.11ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q36    1.00     14.0±0.23ms        ? ?/sec    1.00     14.0±0.29ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q37    1.00      4.9±0.01ms        ? ?/sec    1.00      4.9±0.02ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q38    1.00     12.6±0.23ms        ? ?/sec    1.00     12.6±0.24ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q39    1.00     23.2±0.54ms        ? ?/sec    1.00     23.2±0.46ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q40    1.00      5.0±0.04ms        ? ?/sec    1.00      5.0±0.04ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q41    1.01      4.5±0.02ms        ? ?/sec    1.00      4.4±0.03ms        ? ?/sec
arrow_reader_clickbench/async_object_store/Q42    1.02      3.3±0.01ms        ? ?/sec    1.00      3.2±0.02ms        ? ?/sec
arrow_reader_clickbench/sync/Q1                   1.02    918.3±3.18µs        ? ?/sec    1.00    902.6±3.46µs        ? ?/sec
arrow_reader_clickbench/sync/Q10                  1.02      4.6±0.02ms        ? ?/sec    1.00      4.5±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q11                  1.02      5.6±0.03ms        ? ?/sec    1.00      5.5±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q12                  1.00     20.3±0.04ms        ? ?/sec    1.00     20.4±0.05ms        ? ?/sec
arrow_reader_clickbench/sync/Q13                  1.16     26.7±0.63ms        ? ?/sec    1.00     23.0±0.09ms        ? ?/sec
arrow_reader_clickbench/sync/Q14                  1.00     21.8±0.11ms        ? ?/sec    1.00     21.8±0.05ms        ? ?/sec
arrow_reader_clickbench/sync/Q19                  1.02      2.7±0.02ms        ? ?/sec    1.00      2.6±0.03ms        ? ?/sec
arrow_reader_clickbench/sync/Q20                  1.02    125.2±0.60ms        ? ?/sec    1.00    122.5±0.50ms        ? ?/sec
arrow_reader_clickbench/sync/Q21                  1.02     99.2±0.49ms        ? ?/sec    1.00     97.2±0.38ms        ? ?/sec
arrow_reader_clickbench/sync/Q22                  1.01    145.6±0.57ms        ? ?/sec    1.00    144.8±0.58ms        ? ?/sec
arrow_reader_clickbench/sync/Q23                  1.03    306.5±9.51ms        ? ?/sec    1.00    298.9±9.35ms        ? ?/sec
arrow_reader_clickbench/sync/Q24                  1.00     25.4±0.11ms        ? ?/sec    1.00     25.3±0.13ms        ? ?/sec
arrow_reader_clickbench/sync/Q27                  1.01    109.1±0.89ms        ? ?/sec    1.00    107.7±0.78ms        ? ?/sec
arrow_reader_clickbench/sync/Q28                  1.01    105.3±0.80ms        ? ?/sec    1.00    104.5±0.73ms        ? ?/sec
arrow_reader_clickbench/sync/Q30                  1.01     17.4±0.06ms        ? ?/sec    1.00     17.2±0.08ms        ? ?/sec
arrow_reader_clickbench/sync/Q36                  1.00     21.9±0.08ms        ? ?/sec    1.00     21.8±0.09ms        ? ?/sec
arrow_reader_clickbench/sync/Q37                  1.00      6.6±0.01ms        ? ?/sec    1.00      6.6±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q38                  1.00     11.3±0.05ms        ? ?/sec    1.00     11.3±0.05ms        ? ?/sec
arrow_reader_clickbench/sync/Q39                  1.01     20.6±0.15ms        ? ?/sec    1.00     20.4±0.15ms        ? ?/sec
arrow_reader_clickbench/sync/Q40                  1.01      4.8±0.01ms        ? ?/sec    1.00      4.7±0.01ms        ? ?/sec
arrow_reader_clickbench/sync/Q41                  1.01      5.4±0.02ms        ? ?/sec    1.00      5.4±0.04ms        ? ?/sec
arrow_reader_clickbench/sync/Q42                  1.02      4.3±0.02ms        ? ?/sec    1.00      4.2±0.01ms        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 780.2s
Peak memory 285.7 MiB
Avg memory 159.8 MiB
CPU user 700.6s
CPU sys 73.1s
Peak spill 0 B

branch

Metric Value
Wall time 780.2s
Peak memory 285.9 MiB
Avg memory 137.0 MiB
CPU user 704.4s
CPU sys 73.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Arrow criterion benchmark completed (GKE) | trigger

Instance: c4a-highmem-16 (12 vCPU / 65 GiB)

Comparing unpack_batch (284f700) to 8c265f8 (merge-base) diff

Run configuration
run benchmark arrow_reader
CPU Details (lscpu)
Architecture:                            aarch64
CPU op-mode(s):                          64-bit
Byte Order:                              Little Endian
CPU(s):                                  16
On-line CPU(s) list:                     0-15
Vendor ID:                               ARM
Model name:                              Neoverse-V2
Model:                                   1
Thread(s) per core:                      1
Core(s) per cluster:                     16
Socket(s):                               -
Cluster(s):                              1
Stepping:                                r0p1
BogoMIPS:                                2000.00
Flags:                                   fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 sm3 sm4 asimddp sha512 sve asimdfhm dit uscat ilrcpc flagm sb paca pacg dcpodp sve2 sveaes svepmull svebitperm svesha3 svesm4 flagm2 frint svei8mm svebf16 i8mm bf16 dgh rng bti
L1d cache:                               1 MiB (16 instances)
L1i cache:                               1 MiB (16 instances)
L2 cache:                                32 MiB (16 instances)
L3 cache:                                80 MiB (1 instance)
NUMA node(s):                            1
NUMA node0 CPU(s):                       0-15
Vulnerability Gather data sampling:      Not affected
Vulnerability Indirect target selection: Not affected
Vulnerability Itlb multihit:             Not affected
Vulnerability L1tf:                      Not affected
Vulnerability Mds:                       Not affected
Vulnerability Meltdown:                  Not affected
Vulnerability Mmio stale data:           Not affected
Vulnerability Reg file data sampling:    Not affected
Vulnerability Retbleed:                  Not affected
Vulnerability Spec rstack overflow:      Not affected
Vulnerability Spec store bypass:         Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:                Mitigation; __user pointer sanitization
Vulnerability Spectre v2:                Mitigation; CSV2, BHB
Vulnerability Srbds:                     Not affected
Vulnerability Tsa:                       Not affected
Vulnerability Tsx async abort:           Not affected
Vulnerability Vmscape:                   Not affected
Details

group                                                                                                      main                                   unpack_batch
-----                                                                                                      ----                                   ------------
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                           1.00    835.3±9.85µs        ? ?/sec    1.01   840.6±11.59µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                          1.00    947.3±4.28µs        ? ?/sec    1.00    945.3±4.57µs        ? ?/sec
arrow_array_reader/BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                            1.00    840.8±9.64µs        ? ?/sec    1.00   844.9±12.53µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, mandatory, no NULLs                                     1.00    285.8±0.21µs        ? ?/sec    1.00    284.7±0.21µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, mandatory, no NULLs, large values                       1.00     42.2±0.15ms        ? ?/sec    1.03     43.3±0.14ms        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, half NULLs                                    1.01    391.2±0.72µs        ? ?/sec    1.00    387.8±0.64µs        ? ?/sec
arrow_array_reader/BinaryArray/dictionary encoded, optional, no NULLs                                      1.00    280.9±0.20µs        ? ?/sec    1.03    288.0±0.36µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, mandatory, no NULLs                                          1.01    413.3±4.35µs        ? ?/sec    1.00    407.7±3.12µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, half NULLs                                         1.02    468.8±1.85µs        ? ?/sec    1.00    458.9±2.81µs        ? ?/sec
arrow_array_reader/BinaryArray/plain encoded, optional, no NULLs                                           1.00    414.2±3.72µs        ? ?/sec    1.00    415.0±3.10µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, mandatory, no NULLs                                 1.01     80.2±0.04µs        ? ?/sec    1.00     79.1±0.14µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, half NULLs                                1.01    112.0±0.09µs        ? ?/sec    1.00    110.4±0.13µs        ? ?/sec
arrow_array_reader/BinaryViewArray/dictionary encoded, optional, no NULLs                                  1.01     83.9±0.05µs        ? ?/sec    1.00     83.1±0.06µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs                                      1.00    148.0±0.48µs        ? ?/sec    1.01    149.5±0.76µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, mandatory, no NULLs, short string                        1.01    151.8±4.70µs        ? ?/sec    1.00    150.0±4.76µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, half NULLs                                     1.00    149.3±0.32µs        ? ?/sec    1.00    149.8±0.56µs        ? ?/sec
arrow_array_reader/BinaryViewArray/plain encoded, optional, no NULLs                                       1.00    152.8±0.48µs        ? ?/sec    1.02    155.7±1.94µs        ? ?/sec
arrow_array_reader/BooleanArray/plain encoded, mandatory, no NULLs                                         1.06    242.0±0.45µs        ? ?/sec    1.00    228.6±1.63µs        ? ?/sec
arrow_array_reader/BooleanArray/plain encoded, optional, half NULLs                                        1.03    253.2±1.95µs        ? ?/sec    1.00    245.1±0.71µs        ? ?/sec
arrow_array_reader/BooleanArray/plain encoded, optional, no NULLs                                          1.06    246.3±0.59µs        ? ?/sec    1.00    231.9±0.99µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs     1.00    967.4±2.26µs        ? ?/sec    1.01   978.5±34.65µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, half NULLs    1.00    672.7±0.35µs        ? ?/sec    1.00    673.1±0.42µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/byte_stream_split encoded, optional, no NULLs      1.01   987.2±15.06µs        ? ?/sec    1.00   978.5±67.11µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, mandatory, no NULLs                 1.00    189.4±0.28µs        ? ?/sec    1.00    189.5±0.32µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, half NULLs                1.01    295.7±0.55µs        ? ?/sec    1.00    293.6±0.31µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Decimal128Array/plain encoded, optional, no NULLs                  1.00    194.1±0.21µs        ? ?/sec    1.00    194.0±0.26µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, mandatory, no NULLs        1.04    136.9±7.38µs        ? ?/sec    1.00    131.1±0.25µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, half NULLs       1.00    183.4±0.22µs        ? ?/sec    1.01    184.8±0.39µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/byte_stream_split encoded, optional, no NULLs         1.00    130.9±0.32µs        ? ?/sec    1.03    134.3±0.23µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, mandatory, no NULLs                    1.00     60.4±0.06µs        ? ?/sec    1.00     60.2±0.05µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, half NULLs                   1.00    147.2±0.13µs        ? ?/sec    1.00    147.9±0.13µs        ? ?/sec
arrow_array_reader/FIXED_LEN_BYTE_ARRAY/Float16Array/plain encoded, optional, no NULLs                     1.00     63.2±0.05µs        ? ?/sec    1.01     63.8±0.14µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, mandatory, no NULLs                    1.00    803.9±0.47µs        ? ?/sec    1.00    803.2±0.59µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, half NULLs                   1.00    509.8±0.52µs        ? ?/sec    1.00    510.4±0.41µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/byte_stream_split encoded, optional, no NULLs                     1.00    806.8±0.41µs        ? ?/sec    1.00    807.6±0.84µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, mandatory, no NULLs                                1.00     23.7±0.03µs        ? ?/sec    1.02     24.1±0.08µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, half NULLs                               1.00    131.0±0.14µs        ? ?/sec    1.01    132.0±0.33µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(16)/plain encoded, optional, no NULLs                                 1.00     26.7±0.05µs        ? ?/sec    1.05     28.1±0.07µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, mandatory, no NULLs                     1.05     78.5±1.77µs        ? ?/sec    1.00     74.7±0.32µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, half NULLs                    1.01    130.3±0.20µs        ? ?/sec    1.00    129.4±0.15µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/byte_stream_split encoded, optional, no NULLs                      1.00     77.9±0.14µs        ? ?/sec    1.03     79.8±0.22µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, mandatory, no NULLs                                 1.00      5.4±0.03µs        ? ?/sec    1.00      5.4±0.02µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, half NULLs                                1.01     93.6±0.10µs        ? ?/sec    1.00     92.9±0.11µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(2)/plain encoded, optional, no NULLs                                  1.00      8.8±0.04µs        ? ?/sec    1.00      8.8±0.04µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, mandatory, no NULLs                     1.05    153.9±0.47µs        ? ?/sec    1.00    147.1±0.61µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, half NULLs                    1.01    200.5±0.23µs        ? ?/sec    1.00    199.0±0.19µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/byte_stream_split encoded, optional, no NULLs                      1.00    155.0±0.54µs        ? ?/sec    1.11   172.4±12.70µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, mandatory, no NULLs                                 1.00      7.6±0.02µs        ? ?/sec    1.00      7.6±0.02µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, half NULLs                                1.00    127.7±0.11µs        ? ?/sec    1.01    128.8±0.16µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(4)/plain encoded, optional, no NULLs                                  1.00     11.3±0.04µs        ? ?/sec    1.00     11.3±0.05µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, mandatory, no NULLs                     1.00    306.1±1.02µs        ? ?/sec    1.00    306.2±1.12µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, half NULLs                    1.00    269.6±0.56µs        ? ?/sec    1.01    271.2±0.40µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/byte_stream_split encoded, optional, no NULLs                      1.00    308.4±0.92µs        ? ?/sec    1.01    311.0±1.36µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, mandatory, no NULLs                                 1.00     12.1±0.02µs        ? ?/sec    1.00     12.1±0.03µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, half NULLs                                1.01    124.6±0.14µs        ? ?/sec    1.00    123.3±0.16µs        ? ?/sec
arrow_array_reader/FixedLenByteArray(8)/plain encoded, optional, no NULLs                                  1.02     16.1±0.04µs        ? ?/sec    1.00     15.8±0.05µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed increasing value                                    1.05     88.0±0.72µs        ? ?/sec    1.00     84.2±0.76µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed single value                                        1.05     79.4±0.49µs        ? ?/sec    1.00     75.9±0.55µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip increasing value                               1.04     50.8±0.42µs        ? ?/sec    1.00     48.7±0.38µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip single value                                   1.05     46.3±0.40µs        ? ?/sec    1.00     44.3±0.36µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip stepped increasing value                       1.01     74.2±0.13µs        ? ?/sec    1.00     73.6±0.16µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.02     89.7±0.16µs        ? ?/sec    1.00     88.0±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, half NULLs                          1.01     90.2±0.17µs        ? ?/sec    1.00     89.3±0.19µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed skip, optional, no NULLs                            1.01     91.7±0.14µs        ? ?/sec    1.00     90.5±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed stepped increasing value                            1.01    107.0±0.22µs        ? ?/sec    1.00    106.2±0.15µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, mandatory, no NULLs                                1.02    126.6±0.27µs        ? ?/sec    1.00    124.8±0.33µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, half NULLs                               1.01    148.0±0.17µs        ? ?/sec    1.00    147.0±0.17µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/binary packed, optional, no NULLs                                 1.01    130.0±0.31µs        ? ?/sec    1.00    128.8±0.17µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.01     54.9±0.54µs        ? ?/sec    1.00     54.1±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.01    111.5±0.15µs        ? ?/sec    1.00    110.8±0.14µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.00     57.7±0.04µs        ? ?/sec    1.01     58.0±0.05µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.01     84.3±0.08µs        ? ?/sec    1.00     83.4±0.07µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, half NULLs                          1.01    129.4±0.12µs        ? ?/sec    1.00    127.9±0.12µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/dictionary encoded, optional, no NULLs                            1.01     88.2±0.12µs        ? ?/sec    1.00     86.9±0.06µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, mandatory, no NULLs                                1.04     48.7±0.04µs        ? ?/sec    1.00     46.9±0.08µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, half NULLs                               1.00    107.7±0.13µs        ? ?/sec    1.00    108.1±0.13µs        ? ?/sec
arrow_array_reader/INT32/Decimal128Array/plain encoded, optional, no NULLs                                 1.02     51.9±0.05µs        ? ?/sec    1.00     50.9±0.04µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed increasing value                                    1.03     79.1±0.28µs        ? ?/sec    1.00     76.6±0.18µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed single value                                        1.03     75.1±0.10µs        ? ?/sec    1.00     73.3±0.22µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip increasing value                               1.03     44.0±0.15µs        ? ?/sec    1.00     42.8±0.12µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip single value                                   1.02     41.6±0.07µs        ? ?/sec    1.00     40.9±0.11µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip stepped increasing value                       1.02     68.2±0.60µs        ? ?/sec    1.00     67.1±0.07µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, mandatory, no NULLs                           1.01     79.5±0.10µs        ? ?/sec    1.00     78.6±0.15µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, half NULLs                          1.01     86.4±0.07µs        ? ?/sec    1.00     85.8±0.12µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed skip, optional, no NULLs                            1.02     81.9±0.08µs        ? ?/sec    1.00     80.6±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed stepped increasing value                            1.01    100.3±0.12µs        ? ?/sec    1.00     99.4±0.58µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, mandatory, no NULLs                                1.01    114.7±0.17µs        ? ?/sec    1.00    113.1±0.13µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, half NULLs                               1.01    145.5±0.17µs        ? ?/sec    1.00    144.1±0.20µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/binary packed, optional, no NULLs                                 1.01    118.5±0.15µs        ? ?/sec    1.00    117.3±0.14µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, mandatory, no NULLs                    1.00     82.8±0.08µs        ? ?/sec    1.00     83.1±0.09µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, half NULLs                   1.00    128.1±0.17µs        ? ?/sec    1.01    128.9±0.15µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/byte_stream_split encoded, optional, no NULLs                     1.00     87.5±0.06µs        ? ?/sec    1.01     88.2±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, mandatory, no NULLs                           1.02     86.9±0.11µs        ? ?/sec    1.00     85.4±0.07µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, half NULLs                          1.01    132.6±0.12µs        ? ?/sec    1.00    131.6±0.16µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/dictionary encoded, optional, no NULLs                            1.02     90.8±0.07µs        ? ?/sec    1.00     89.2±0.10µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, mandatory, no NULLs                                1.01     54.7±0.17µs        ? ?/sec    1.00     54.1±0.07µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, half NULLs                               1.00    113.4±0.12µs        ? ?/sec    1.00    113.9±0.16µs        ? ?/sec
arrow_array_reader/INT64/Decimal128Array/plain encoded, optional, no NULLs                                 1.00     58.1±0.11µs        ? ?/sec    1.01     58.9±0.08µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed increasing value                                               1.06     53.9±0.64µs        ? ?/sec    1.00     50.8±0.58µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed single value                                                   1.07     45.2±0.46µs        ? ?/sec    1.00     42.1±0.43µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip increasing value                                          1.06     33.4±0.37µs        ? ?/sec    1.00     31.5±0.34µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip single value                                              1.07     28.7±0.36µs        ? ?/sec    1.00     27.0±0.36µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip stepped increasing value                                  1.02     57.2±0.13µs        ? ?/sec    1.00     55.9±0.09µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, mandatory, no NULLs                                      1.01     72.1±0.27µs        ? ?/sec    1.00     71.2±0.15µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, half NULLs                                     1.00     72.7±0.17µs        ? ?/sec    1.00     72.4±0.14µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed skip, optional, no NULLs                                       1.02     74.3±0.27µs        ? ?/sec    1.00     73.1±0.16µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed stepped increasing value                                       1.02     73.9±0.19µs        ? ?/sec    1.00     72.6±0.15µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, mandatory, no NULLs                                           1.01     92.4±0.28µs        ? ?/sec    1.00     91.1±0.26µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, half NULLs                                          1.01    114.2±0.21µs        ? ?/sec    1.00    113.3±0.18µs        ? ?/sec
arrow_array_reader/Int16Array/binary packed, optional, no NULLs                                            1.01     96.2±0.27µs        ? ?/sec    1.00     94.8±0.27µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     21.1±0.03µs        ? ?/sec    1.00     21.1±0.04µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, half NULLs                              1.00     77.4±0.14µs        ? ?/sec    1.01     78.3±0.09µs        ? ?/sec
arrow_array_reader/Int16Array/byte_stream_split encoded, optional, no NULLs                                1.00     24.6±0.03µs        ? ?/sec    1.01     24.9±0.03µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, mandatory, no NULLs                                      1.03     51.3±0.08µs        ? ?/sec    1.00     50.0±0.07µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, half NULLs                                     1.00     95.0±0.14µs        ? ?/sec    1.00     95.1±0.17µs        ? ?/sec
arrow_array_reader/Int16Array/dictionary encoded, optional, no NULLs                                       1.02     55.1±0.04µs        ? ?/sec    1.00     53.8±0.05µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, mandatory, no NULLs                                           1.00     13.9±0.03µs        ? ?/sec    1.00     14.0±0.04µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, half NULLs                                          1.00     74.4±0.10µs        ? ?/sec    1.01     75.2±0.13µs        ? ?/sec
arrow_array_reader/Int16Array/plain encoded, optional, no NULLs                                            1.00     17.9±0.02µs        ? ?/sec    1.01     18.0±0.03µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed increasing value                                               1.05     50.2±0.65µs        ? ?/sec    1.00     48.0±0.74µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed single value                                                   1.06     41.8±0.45µs        ? ?/sec    1.00     39.6±0.47µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip increasing value                                          1.04     31.6±0.37µs        ? ?/sec    1.00     30.4±0.34µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip single value                                              1.04     26.8±0.39µs        ? ?/sec    1.00     25.8±0.38µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip stepped increasing value                                  1.01     55.3±0.12µs        ? ?/sec    1.00     54.9±0.09µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, mandatory, no NULLs                                      1.02     71.1±0.37µs        ? ?/sec    1.00     69.7±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, half NULLs                                     1.00     71.3±0.15µs        ? ?/sec    1.00     71.5±0.11µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed skip, optional, no NULLs                                       1.02     73.0±0.33µs        ? ?/sec    1.00     71.9±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed stepped increasing value                                       1.00     70.2±0.16µs        ? ?/sec    1.00     70.1±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, mandatory, no NULLs                                           1.01     89.4±0.33µs        ? ?/sec    1.00     88.5±0.12µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, half NULLs                                          1.01    112.3±0.26µs        ? ?/sec    1.00    111.0±0.15µs        ? ?/sec
arrow_array_reader/Int32Array/binary packed, optional, no NULLs                                            1.01     93.5±0.60µs        ? ?/sec    1.00     92.5±0.14µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     17.4±0.02µs        ? ?/sec    1.00     17.5±0.02µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, half NULLs                              1.01     74.6±0.13µs        ? ?/sec    1.00     74.2±0.09µs        ? ?/sec
arrow_array_reader/Int32Array/byte_stream_split encoded, optional, no NULLs                                1.00     20.9±0.02µs        ? ?/sec    1.01     21.1±0.03µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, mandatory, no NULLs                                      1.03     47.6±0.05µs        ? ?/sec    1.00     46.3±0.06µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, half NULLs                                     1.00     91.8±0.16µs        ? ?/sec    1.00     91.8±0.13µs        ? ?/sec
arrow_array_reader/Int32Array/dictionary encoded, optional, no NULLs                                       1.03     51.4±0.06µs        ? ?/sec    1.00     50.0±0.09µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, mandatory, no NULLs                                           1.00     10.0±0.03µs        ? ?/sec    1.00      9.9±0.01µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, half NULLs                                          1.00     71.5±0.11µs        ? ?/sec    1.01     71.9±0.13µs        ? ?/sec
arrow_array_reader/Int32Array/plain encoded, optional, no NULLs                                            1.00     13.6±0.03µs        ? ?/sec    1.01     13.7±0.02µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed increasing value                                               1.05     41.7±0.09µs        ? ?/sec    1.00     39.7±0.15µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed single value                                                   1.05     38.4±0.15µs        ? ?/sec    1.00     36.6±0.23µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip increasing value                                          1.04     24.9±0.04µs        ? ?/sec    1.00     24.0±0.13µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip single value                                              1.04     23.1±0.07µs        ? ?/sec    1.00     22.3±0.15µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip stepped increasing value                                  1.02     48.8±0.09µs        ? ?/sec    1.00     47.9±0.06µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, mandatory, no NULLs                                      1.02     60.7±0.06µs        ? ?/sec    1.00     59.5±0.09µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, half NULLs                                     1.00     67.4±0.07µs        ? ?/sec    1.00     67.6±0.12µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed skip, optional, no NULLs                                       1.02     62.6±0.16µs        ? ?/sec    1.00     61.7±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed stepped increasing value                                       1.02     62.9±0.17µs        ? ?/sec    1.00     61.7±0.12µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, mandatory, no NULLs                                           1.02     77.8±0.14µs        ? ?/sec    1.00     76.2±0.11µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, half NULLs                                          1.00    107.8±0.09µs        ? ?/sec    1.00    107.7±0.16µs        ? ?/sec
arrow_array_reader/Int64Array/binary packed, optional, no NULLs                                            1.02     81.7±0.06µs        ? ?/sec    1.00     80.4±0.16µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     45.8±0.03µs        ? ?/sec    1.02     46.6±0.04µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, half NULLs                              1.00     91.5±0.10µs        ? ?/sec    1.00     91.9±0.24µs        ? ?/sec
arrow_array_reader/Int64Array/byte_stream_split encoded, optional, no NULLs                                1.00     50.0±0.05µs        ? ?/sec    1.02     50.9±0.05µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, mandatory, no NULLs                                      1.03     49.9±0.08µs        ? ?/sec    1.00     48.4±0.03µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, half NULLs                                     1.01     94.9±0.11µs        ? ?/sec    1.00     93.6±0.10µs        ? ?/sec
arrow_array_reader/Int64Array/dictionary encoded, optional, no NULLs                                       1.03     54.0±0.07µs        ? ?/sec    1.00     52.2±0.06µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, mandatory, no NULLs                                           1.01     16.6±0.04µs        ? ?/sec    1.00     16.5±0.03µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, half NULLs                                          1.00     76.7±0.08µs        ? ?/sec    1.01     77.7±0.13µs        ? ?/sec
arrow_array_reader/Int64Array/plain encoded, optional, no NULLs                                            1.00     20.2±0.03µs        ? ?/sec    1.02     20.6±0.02µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed increasing value                                                1.06     53.5±0.71µs        ? ?/sec    1.00     50.2±0.51µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed single value                                                    1.07     45.1±0.52µs        ? ?/sec    1.00     42.1±0.46µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip increasing value                                           1.07     33.5±0.42µs        ? ?/sec    1.00     31.4±0.29µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip single value                                               1.06     28.7±0.43µs        ? ?/sec    1.00     27.1±0.37µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip stepped increasing value                                   1.02     57.0±0.10µs        ? ?/sec    1.00     55.9±0.09µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, mandatory, no NULLs                                       1.01     72.2±0.10µs        ? ?/sec    1.00     71.3±0.12µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, half NULLs                                      1.00     72.6±0.13µs        ? ?/sec    1.00     72.4±0.14µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed skip, optional, no NULLs                                        1.01     74.4±0.13µs        ? ?/sec    1.00     74.0±0.13µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed stepped increasing value                                        1.01     73.6±0.19µs        ? ?/sec    1.00     72.5±0.16µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, mandatory, no NULLs                                            1.01     92.3±0.13µs        ? ?/sec    1.00     91.9±0.21µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, half NULLs                                           1.01    114.4±0.14µs        ? ?/sec    1.00    113.1±0.18µs        ? ?/sec
arrow_array_reader/Int8Array/binary packed, optional, no NULLs                                             1.00     95.9±0.15µs        ? ?/sec    1.00     95.5±0.20µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, mandatory, no NULLs                                1.00     20.9±0.03µs        ? ?/sec    1.00     21.0±0.03µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, half NULLs                               1.00     77.2±0.12µs        ? ?/sec    1.00     77.1±0.10µs        ? ?/sec
arrow_array_reader/Int8Array/byte_stream_split encoded, optional, no NULLs                                 1.00     24.6±0.03µs        ? ?/sec    1.01     24.8±0.03µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, mandatory, no NULLs                                       1.04     51.4±0.05µs        ? ?/sec    1.00     49.6±0.06µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, half NULLs                                      1.01     95.2±0.12µs        ? ?/sec    1.00     94.7±0.11µs        ? ?/sec
arrow_array_reader/Int8Array/dictionary encoded, optional, no NULLs                                        1.02     54.8±0.04µs        ? ?/sec    1.00     53.5±0.06µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, mandatory, no NULLs                                            1.00     13.8±0.03µs        ? ?/sec    1.00     13.7±0.05µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, half NULLs                                           1.00     74.6±0.13µs        ? ?/sec    1.00     74.4±0.10µs        ? ?/sec
arrow_array_reader/Int8Array/plain encoded, optional, no NULLs                                             1.00     17.6±0.03µs        ? ?/sec    1.00     17.6±0.04µs        ? ?/sec
arrow_array_reader/ListArray/Fixed32List/90pct NULLs                                                       1.00   905.4±10.90µs        ? ?/sec    1.01   911.7±13.31µs        ? ?/sec
arrow_array_reader/ListArray/Fixed32List/99pct NULLs                                                       1.00   456.5±13.64µs        ? ?/sec    1.02   464.0±23.33µs        ? ?/sec
arrow_array_reader/ListArray/Fixed32List/half NULLs                                                        1.02      2.3±0.01ms        ? ?/sec    1.00      2.2±0.01ms        ? ?/sec
arrow_array_reader/ListArray/Fixed32List/no NULLs                                                          1.00      3.1±0.01ms        ? ?/sec    1.01      3.2±0.02ms        ? ?/sec
arrow_array_reader/ListArray/Int32List/90pct NULLs                                                         1.00   893.0±10.64µs        ? ?/sec    1.00   897.1±12.22µs        ? ?/sec
arrow_array_reader/ListArray/Int32List/99pct NULLs                                                         1.00   455.0±13.35µs        ? ?/sec    1.02   464.9±23.26µs        ? ?/sec
arrow_array_reader/ListArray/Int32List/half NULLs                                                          1.01      2.0±0.01ms        ? ?/sec    1.00   1998.5±8.42µs        ? ?/sec
arrow_array_reader/ListArray/Int32List/no NULLs                                                            1.00      2.8±0.01ms        ? ?/sec    1.00      2.8±0.01ms        ? ?/sec
arrow_array_reader/ListArray/StringList/90pct NULLs                                                        1.00   955.5±10.60µs        ? ?/sec    1.01   968.4±13.53µs        ? ?/sec
arrow_array_reader/ListArray/StringList/99pct NULLs                                                        1.00   460.1±13.72µs        ? ?/sec    1.02   469.9±22.72µs        ? ?/sec
arrow_array_reader/ListArray/StringList/half NULLs                                                         1.01      3.1±0.01ms        ? ?/sec    1.00      3.0±0.01ms        ? ?/sec
arrow_array_reader/ListArray/StringList/no NULLs                                                           1.00      5.0±0.03ms        ? ?/sec    1.00      5.0±0.03ms        ? ?/sec
arrow_array_reader/PlainStringToDictionary/high cardinality                                                1.00   1079.5±9.36µs        ? ?/sec    1.00  1082.5±10.87µs        ? ?/sec
arrow_array_reader/PlainStringToDictionary/low cardinality                                                 1.00   1014.1±9.17µs        ? ?/sec    1.00   1016.4±8.26µs        ? ?/sec
arrow_array_reader/PlainStringToDictionary/medium cardinality 1                                            1.00   1079.7±9.09µs        ? ?/sec    1.00   1079.5±9.50µs        ? ?/sec
arrow_array_reader/PlainStringToDictionary/medium cardinality 2                                            1.00   1032.0±9.17µs        ? ?/sec    1.01   1037.3±9.25µs        ? ?/sec
arrow_array_reader/StringArray/const delta byte array encoded, mandatory, no NULLs                         1.01    532.5±1.38µs        ? ?/sec    1.00    529.8±2.09µs        ? ?/sec
arrow_array_reader/StringArray/const delta length byte array encoded, mandatory, no NULLs                  1.01    225.8±1.01µs        ? ?/sec    1.00    223.6±2.10µs        ? ?/sec
arrow_array_reader/StringArray/const prefix delta byte array encoded, mandatory, no NULLs                  1.00   787.7±37.52µs        ? ?/sec    1.01   794.8±35.82µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, mandatory, no NULLs                                     1.03    284.9±0.21µs        ? ?/sec    1.00    276.1±0.62µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, half NULLs                                    1.02    391.1±0.68µs        ? ?/sec    1.00    383.6±0.65µs        ? ?/sec
arrow_array_reader/StringArray/dictionary encoded, optional, no NULLs                                      1.00    288.9±0.25µs        ? ?/sec    1.00    288.7±0.76µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, mandatory, no NULLs                                          1.00    457.9±4.30µs        ? ?/sec    1.00    455.8±5.52µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, half NULLs                                         1.00    493.6±2.95µs        ? ?/sec    1.00    491.2±2.16µs        ? ?/sec
arrow_array_reader/StringArray/plain encoded, optional, no NULLs                                           1.00    464.2±3.11µs        ? ?/sec    1.00    462.0±3.69µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, mandatory, no NULLs                                1.01    193.9±0.52µs        ? ?/sec    1.00    192.6±0.22µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, half NULLs                               1.00    243.6±0.23µs        ? ?/sec    1.00    244.3±0.43µs        ? ?/sec
arrow_array_reader/StringDictionary/dictionary encoded, optional, no NULLs                                 1.01    197.6±0.32µs        ? ?/sec    1.00    196.4±0.21µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, mandatory, no NULLs                                 1.01     80.5±0.04µs        ? ?/sec    1.00     79.3±0.05µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, half NULLs                                1.02    112.8±0.13µs        ? ?/sec    1.00    110.5±0.08µs        ? ?/sec
arrow_array_reader/StringViewArray/dictionary encoded, optional, no NULLs                                  1.02     84.2±0.06µs        ? ?/sec    1.00     82.9±0.06µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, mandatory, no NULLs                                      1.00    218.9±0.35µs        ? ?/sec    1.01    221.0±0.46µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, half NULLs                                     1.00    185.4±0.23µs        ? ?/sec    1.00    185.6±0.33µs        ? ?/sec
arrow_array_reader/StringViewArray/plain encoded, optional, no NULLs                                       1.00    227.2±0.24µs        ? ?/sec    1.02    230.7±0.41µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed increasing value                                              1.08     54.1±0.66µs        ? ?/sec    1.00     50.1±0.30µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed single value                                                  1.08     45.5±0.55µs        ? ?/sec    1.00     42.1±0.21µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip increasing value                                         1.07     33.6±0.41µs        ? ?/sec    1.00     31.3±0.20µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip single value                                             1.07     28.9±0.40µs        ? ?/sec    1.00     27.0±0.22µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip stepped increasing value                                 1.02     57.2±0.12µs        ? ?/sec    1.00     56.0±0.09µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, mandatory, no NULLs                                     1.01     76.4±0.09µs        ? ?/sec    1.00     75.4±0.09µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, half NULLs                                    1.01     75.6±0.11µs        ? ?/sec    1.00     75.1±0.06µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed skip, optional, no NULLs                                      1.01     78.8±0.07µs        ? ?/sec    1.00     77.8±0.13µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed stepped increasing value                                      1.02     73.9±0.19µs        ? ?/sec    1.00     72.7±0.14µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, mandatory, no NULLs                                          1.02     98.3±0.13µs        ? ?/sec    1.00     96.5±0.14µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, half NULLs                                         1.01    117.8±0.14µs        ? ?/sec    1.00    116.9±0.13µs        ? ?/sec
arrow_array_reader/UInt16Array/binary packed, optional, no NULLs                                           1.01    102.1±0.14µs        ? ?/sec    1.00    100.6±0.12µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, mandatory, no NULLs                              1.01     21.9±0.03µs        ? ?/sec    1.00     21.8±0.04µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, half NULLs                             1.00     77.1±0.11µs        ? ?/sec    1.00     77.0±0.08µs        ? ?/sec
arrow_array_reader/UInt16Array/byte_stream_split encoded, optional, no NULLs                               1.00     24.7±0.03µs        ? ?/sec    1.01     25.1±0.03µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, mandatory, no NULLs                                     1.02     51.1±0.04µs        ? ?/sec    1.00     50.1±0.04µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, half NULLs                                    1.00     95.1±0.12µs        ? ?/sec    1.00     95.4±0.13µs        ? ?/sec
arrow_array_reader/UInt16Array/dictionary encoded, optional, no NULLs                                      1.02     55.3±0.04µs        ? ?/sec    1.00     54.1±0.05µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, mandatory, no NULLs                                          1.01     14.0±0.02µs        ? ?/sec    1.00     13.9±0.03µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, half NULLs                                         1.00     74.6±0.12µs        ? ?/sec    1.01     75.1±0.11µs        ? ?/sec
arrow_array_reader/UInt16Array/plain encoded, optional, no NULLs                                           1.00     17.8±0.02µs        ? ?/sec    1.00     17.8±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed increasing value                                              1.07     50.4±0.59µs        ? ?/sec    1.00     47.1±0.59µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed single value                                                  1.08     42.4±0.49µs        ? ?/sec    1.00     39.1±0.42µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip increasing value                                         1.07     31.8±0.39µs        ? ?/sec    1.00     29.7±0.33µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip single value                                             1.08     27.3±0.39µs        ? ?/sec    1.00     25.2±0.35µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip stepped increasing value                                 1.02     55.5±0.11µs        ? ?/sec    1.00     54.3±0.08µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, mandatory, no NULLs                                     1.02     70.8±0.20µs        ? ?/sec    1.00     69.6±0.06µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, half NULLs                                    1.01     71.6±0.15µs        ? ?/sec    1.00     70.9±0.05µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed skip, optional, no NULLs                                      1.02     72.8±0.22µs        ? ?/sec    1.00     71.7±0.04µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed stepped increasing value                                      1.02     70.3±0.18µs        ? ?/sec    1.00     69.1±0.14µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, mandatory, no NULLs                                          1.02     89.6±0.21µs        ? ?/sec    1.00     87.9±0.09µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, half NULLs                                         1.01    111.8±0.21µs        ? ?/sec    1.00    110.5±0.10µs        ? ?/sec
arrow_array_reader/UInt32Array/binary packed, optional, no NULLs                                           1.02     93.3±0.23µs        ? ?/sec    1.00     91.9±0.13µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     17.5±0.02µs        ? ?/sec    1.00     17.6±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, half NULLs                             1.00     74.2±0.08µs        ? ?/sec    1.00     74.4±0.11µs        ? ?/sec
arrow_array_reader/UInt32Array/byte_stream_split encoded, optional, no NULLs                               1.00     21.1±0.02µs        ? ?/sec    1.00     21.2±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, mandatory, no NULLs                                     1.03     47.9±0.07µs        ? ?/sec    1.00     46.5±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, half NULLs                                    1.01     91.9±0.11µs        ? ?/sec    1.00     91.0±0.09µs        ? ?/sec
arrow_array_reader/UInt32Array/dictionary encoded, optional, no NULLs                                      1.03     51.5±0.06µs        ? ?/sec    1.00     50.1±0.05µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, mandatory, no NULLs                                          1.00     10.2±0.02µs        ? ?/sec    1.00     10.2±0.03µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, half NULLs                                         1.00     71.0±0.10µs        ? ?/sec    1.02     72.5±0.10µs        ? ?/sec
arrow_array_reader/UInt32Array/plain encoded, optional, no NULLs                                           1.00     13.9±0.01µs        ? ?/sec    1.02     14.2±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed increasing value                                              1.05     41.9±0.10µs        ? ?/sec    1.00     40.0±0.12µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed single value                                                  1.05     38.7±0.08µs        ? ?/sec    1.00     36.9±0.21µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip increasing value                                         1.04     25.0±0.05µs        ? ?/sec    1.00     24.0±0.12µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip single value                                             1.02     23.0±0.07µs        ? ?/sec    1.00     22.5±0.15µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip stepped increasing value                                 1.02     48.8±0.07µs        ? ?/sec    1.00     47.9±0.06µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, mandatory, no NULLs                                     1.02     60.8±0.06µs        ? ?/sec    1.00     59.4±0.10µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, half NULLs                                    1.00     67.4±0.06µs        ? ?/sec    1.00     67.2±0.14µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed skip, optional, no NULLs                                      1.02     62.7±0.07µs        ? ?/sec    1.00     61.6±0.10µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed stepped increasing value                                      1.02     63.0±0.11µs        ? ?/sec    1.00     61.8±0.08µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, mandatory, no NULLs                                          1.02     77.7±0.15µs        ? ?/sec    1.00     76.3±0.13µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, half NULLs                                         1.01    108.0±0.10µs        ? ?/sec    1.00    107.2±0.17µs        ? ?/sec
arrow_array_reader/UInt64Array/binary packed, optional, no NULLs                                           1.02     81.7±0.07µs        ? ?/sec    1.00     80.4±0.16µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, mandatory, no NULLs                              1.00     45.8±0.04µs        ? ?/sec    1.02     46.5±0.07µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, half NULLs                             1.00     91.5±0.09µs        ? ?/sec    1.01     92.0±0.11µs        ? ?/sec
arrow_array_reader/UInt64Array/byte_stream_split encoded, optional, no NULLs                               1.00     50.0±0.05µs        ? ?/sec    1.02     50.9±0.05µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, mandatory, no NULLs                                     1.03     50.1±0.05µs        ? ?/sec    1.00     48.8±0.04µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, half NULLs                                    1.01     95.1±0.11µs        ? ?/sec    1.00     94.7±0.13µs        ? ?/sec
arrow_array_reader/UInt64Array/dictionary encoded, optional, no NULLs                                      1.02     53.8±0.05µs        ? ?/sec    1.00     52.5±0.05µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, mandatory, no NULLs                                          1.00     16.7±0.02µs        ? ?/sec    1.00     16.7±0.05µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, half NULLs                                         1.00     76.7±0.09µs        ? ?/sec    1.01     77.6±0.09µs        ? ?/sec
arrow_array_reader/UInt64Array/plain encoded, optional, no NULLs                                           1.00     20.2±0.03µs        ? ?/sec    1.01     20.3±0.02µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed increasing value                                               1.07     53.7±0.57µs        ? ?/sec    1.00     50.2±0.53µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed single value                                                   1.08     45.8±0.50µs        ? ?/sec    1.00     42.3±0.41µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip increasing value                                          1.06     33.5±0.36µs        ? ?/sec    1.00     31.6±0.30µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip single value                                              1.07     29.0±0.40µs        ? ?/sec    1.00     27.2±0.31µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip stepped increasing value                                  1.02     57.1±0.11µs        ? ?/sec    1.00     56.0±0.10µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, mandatory, no NULLs                                      1.01     76.0±0.07µs        ? ?/sec    1.00     74.9±0.09µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, half NULLs                                     1.01     74.9±0.10µs        ? ?/sec    1.00     74.5±0.06µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed skip, optional, no NULLs                                       1.01     78.1±0.05µs        ? ?/sec    1.00     77.1±0.07µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed stepped increasing value                                       1.02     73.6±0.19µs        ? ?/sec    1.00     72.5±0.14µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, mandatory, no NULLs                                           1.01     97.6±0.08µs        ? ?/sec    1.00     96.2±0.13µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, half NULLs                                          1.00    117.0±0.12µs        ? ?/sec    1.00    116.6±0.13µs        ? ?/sec
arrow_array_reader/UInt8Array/binary packed, optional, no NULLs                                            1.02    101.3±0.10µs        ? ?/sec    1.00     99.7±0.12µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, mandatory, no NULLs                               1.00     20.8±0.03µs        ? ?/sec    1.01     21.0±0.03µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, half NULLs                              1.00     77.1±0.09µs        ? ?/sec    1.00     77.0±0.08µs        ? ?/sec
arrow_array_reader/UInt8Array/byte_stream_split encoded, optional, no NULLs                                1.00     24.6±0.02µs        ? ?/sec    1.01     24.9±0.04µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, mandatory, no NULLs                                      1.02     51.2±0.06µs        ? ?/sec    1.00     49.9±0.05µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, half NULLs                                     1.01     95.4±0.11µs        ? ?/sec    1.00     94.9±0.17µs        ? ?/sec
arrow_array_reader/UInt8Array/dictionary encoded, optional, no NULLs                                       1.03     55.1±0.05µs        ? ?/sec    1.00     53.7±0.05µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, mandatory, no NULLs                                           1.00     13.7±0.02µs        ? ?/sec    1.00     13.7±0.07µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, half NULLs                                          1.00     74.6±0.12µs        ? ?/sec    1.00     74.8±0.10µs        ? ?/sec
arrow_array_reader/UInt8Array/plain encoded, optional, no NULLs                                            1.00     17.5±0.02µs        ? ?/sec    1.01     17.6±0.04µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, half NULLs            1.00     71.9±0.15µs        ? ?/sec    1.01     72.3±0.08µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, mandatory struct, optional data, no NULLs              1.00     13.7±0.02µs        ? ?/sec    1.00     13.8±0.02µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, half NULLs             1.05    132.3±0.13µs        ? ?/sec    1.00    125.5±0.16µs        ? ?/sec
arrow_array_reader/struct/Int32Array/plain encoded, optional struct, optional data, no NULLs               1.00     65.6±0.06µs        ? ?/sec    1.00     65.8±0.05µs        ? ?/sec

Resource Usage

base (merge-base)

Metric Value
Wall time 3005.7s
Peak memory 182.5 MiB
Avg memory 42.3 MiB
CPU user 2989.9s
CPU sys 12.5s
Peak spill 0 B

branch

Metric Value
Wall time 3005.7s
Peak memory 187.9 MiB
Avg memory 40.2 MiB
CPU user 2988.8s
CPU sys 12.9s
Peak spill 0 B

File an issue against this benchmark runner

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

parquet Changes to the parquet crate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants