Skip to content

IN LIST: Handle dictionary inputs once - #24662

Draft
geoffreyclaude wants to merge 4 commits into
apache:mainfrom
geoffreyclaude:codex/in-list-dictionary-dispatch
Draft

IN LIST: Handle dictionary inputs once#24662
geoffreyclaude wants to merge 4 commits into
apache:mainfrom
geoffreyclaude:codex/in-list-dictionary-dispatch

Conversation

@geoffreyclaude

@geoffreyclaude geoffreyclaude commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Which issue does this PR close?

Rationale for this change

Dictionary handling is currently repeated in each concrete IN LIST filter. That makes datafusion-physical-expr substantially larger to compile and link.

What changes are included in this PR?

Dictionary-encoded inputs use one small wrapper around the selected filter. The filter checks each dictionary value once, then maps those results through the dictionary keys. Plain inputs continue to call their selected filter directly.

Nested dictionary list values are flattened before choosing a filter. This preserves SQL null behavior while still allowing the final value type to use its specialized filter.

The PR also adds small-batch Criterion cases for both plain and dictionary inputs.

Measurements

Measured locally on an M1 Max against the exact #24102 head plus the benchmark-only commit.

Size measurement Before After Change
datafusion-physical-expr LLVM IR 675,256 lines 647,201 lines -4.15%
StaticFilter::contains LLVM IR 33,502 lines 5,343 lines -84.05%
Release benchmark Mach-O __text 8,713,520 bytes 8,500,880 bytes -2.44%

Focused Criterion benchmarks found no material regression. In the automated AArch64 run, dictionary inputs had 15–26% lower latency at batch sizes 1–64, while 8,192-row and plain-input cases were unchanged (full results).

Are these changes tested?

Yes. Tests cover every dictionary key type, nested dictionaries, dictionary nulls, unreferenced null values, timestamp timezones, decimal metadata, and nested dictionary scalar inputs.

  • cargo test -p datafusion-physical-expr --all-features (1,694 passed, 1 ignored; 13 doctests passed)
  • cargo clippy --all-targets --all-features -- -D warnings
  • cargo fmt --all

Are there any user-facing changes?

No. This keeps the existing IN LIST behavior while reducing generated code.

Cover plain and dictionary Int32 inputs from one row through the standard 8,192-row batch. The cases use both short and longer IN lists so fixed per-batch costs are visible without losing the usual vectorized comparison.
@github-actions github-actions Bot added the physical-expr Changes to the physical-expr crates label Aug 25, 2026
@geoffreyclaude
geoffreyclaude force-pushed the codex/in-list-dictionary-dispatch branch from df02fd2 to 7055e43 Compare August 25, 2026 12:56
@geoffreyclaude

Copy link
Copy Markdown
Contributor Author

run benchmark in_list
baseline:
ref: c396e6a

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5410721423-1938-j8kbl 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 codex/in-list-dictionary-dispatch (7055e43) to c396e6a diff

Run configuration
run benchmark in_list
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"

Results will be posted here when complete


File an issue against this benchmark runner

Wrap the selected filter when the input is dictionary encoded, instead of teaching every filter implementation how to unpack dictionary keys. Plain inputs continue to use their filter directly.

Flatten nested dictionary values before choosing a filter, and cover dictionary key types, nested dictionaries, nulls, timestamps, decimals, and scalar inputs.
@geoffreyclaude
geoffreyclaude force-pushed the codex/in-list-dictionary-dispatch branch from 7055e43 to 33a3f38 Compare August 25, 2026 13:09
@geoffreyclaude

Copy link
Copy Markdown
Contributor Author

run benchmark in_list
baseline:
ref: c396e6a

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5410845983-1939-5bw9z 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 codex/in-list-dictionary-dispatch (33a3f38) to c396e6a diff

Run configuration
run benchmark in_list
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

Comparing codex/in-list-dictionary-dispatch (7055e43) to c396e6a diff

Run configuration
run benchmark in_list
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"
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                                                  HEAD                                   codex_in-list-dictionary-dispatch
-----                                                  ----                                   ---------------------------------
in_list/Float32/list=100/nulls=0%                      1.00     29.4±0.78µs        ? ?/sec    2.02     59.6±1.29µs        ? ?/sec
in_list/Float32/list=100/nulls=20%                     1.86     53.0±0.58µs        ? ?/sec    1.00     28.5±0.94µs        ? ?/sec
in_list/Float32/list=28/nulls=0%                       1.00     14.5±0.05µs        ? ?/sec    1.00     14.5±0.02µs        ? ?/sec
in_list/Float32/list=28/nulls=20%                      1.00     14.6±0.03µs        ? ?/sec    1.00     14.6±0.08µs        ? ?/sec
in_list/Float32/list=3/nulls=0%                        1.00      3.2±0.01µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
in_list/Float32/list=3/nulls=20%                       1.01      3.3±0.01µs        ? ?/sec    1.00      3.2±0.00µs        ? ?/sec
in_list/Float32/list=8/nulls=0%                        1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
in_list/Float32/list=8/nulls=20%                       1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=100/nulls=0%                        1.01      5.3±0.07µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=100/nulls=20%                       1.01      5.3±0.04µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
in_list/Int16/list=28/nulls=0%                         1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=28/nulls=20%                        1.00      5.3±0.01µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
in_list/Int16/list=3/nulls=0%                          1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
in_list/Int16/list=3/nulls=20%                         1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
in_list/Int16/list=8/nulls=0%                          1.00      4.5±0.02µs        ? ?/sec    1.00      4.5±0.01µs        ? ?/sec
in_list/Int16/list=8/nulls=20%                         1.00      4.6±0.01µs        ? ?/sec    1.00      4.6±0.01µs        ? ?/sec
in_list/Int32/list=100/nulls=0%                        1.61     58.8±0.85µs        ? ?/sec    1.00     36.6±0.97µs        ? ?/sec
in_list/Int32/list=100/nulls=20%                       1.00     30.0±0.65µs        ? ?/sec    1.10     32.9±0.61µs        ? ?/sec
in_list/Int32/list=28/nulls=0%                         1.00     14.5±0.04µs        ? ?/sec    1.00     14.5±0.02µs        ? ?/sec
in_list/Int32/list=28/nulls=20%                        1.00     14.6±0.03µs        ? ?/sec    1.00     14.6±0.02µs        ? ?/sec
in_list/Int32/list=3/nulls=0%                          1.00      3.2±0.01µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
in_list/Int32/list=3/nulls=20%                         1.00      3.2±0.01µs        ? ?/sec    1.00      3.3±0.01µs        ? ?/sec
in_list/Int32/list=8/nulls=0%                          1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
in_list/Int32/list=8/nulls=20%                         1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/TimestampNs/list=100/nulls=0%                  1.00     52.9±0.55µs        ? ?/sec    1.02     53.8±1.32µs        ? ?/sec
in_list/TimestampNs/list=100/nulls=20%                 1.00     61.4±0.77µs        ? ?/sec    1.00     61.5±0.67µs        ? ?/sec
in_list/TimestampNs/list=28/nulls=0%                   1.13     33.5±0.56µs        ? ?/sec    1.00     29.8±0.53µs        ? ?/sec
in_list/TimestampNs/list=28/nulls=20%                  1.13     47.1±2.52µs        ? ?/sec    1.00     41.6±0.81µs        ? ?/sec
in_list/TimestampNs/list=3/nulls=0%                    1.00      3.7±0.01µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
in_list/TimestampNs/list=3/nulls=20%                   1.00      3.8±0.01µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
in_list/TimestampNs/list=8/nulls=0%                    1.00      7.3±0.01µs        ? ?/sec    1.00      7.3±0.01µs        ? ?/sec
in_list/TimestampNs/list=8/nulls=20%                   1.00      7.4±0.01µs        ? ?/sec    1.00      7.4±0.01µs        ? ?/sec
in_list/UInt8/list=100/nulls=0%                        1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/UInt8/list=100/nulls=20%                       1.00      5.3±0.01µs        ? ?/sec    1.01      5.3±0.06µs        ? ?/sec
in_list/UInt8/list=28/nulls=0%                         1.00      5.2±0.01µs        ? ?/sec    1.02      5.3±0.06µs        ? ?/sec
in_list/UInt8/list=28/nulls=20%                        1.00      5.3±0.02µs        ? ?/sec    1.00      5.3±0.04µs        ? ?/sec
in_list/UInt8/list=3/nulls=0%                          1.00      3.2±0.00µs        ? ?/sec    1.00      3.2±0.00µs        ? ?/sec
in_list/UInt8/list=3/nulls=20%                         1.00      3.3±0.01µs        ? ?/sec    1.00      3.3±0.00µs        ? ?/sec
in_list/UInt8/list=8/nulls=0%                          1.00      3.7±0.01µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
in_list/UInt8/list=8/nulls=20%                         1.00      3.8±0.01µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=100                 1.06     84.4±2.64µs        ? ?/sec    1.00     79.3±1.53µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=12                  1.03     48.4±0.58µs        ? ?/sec    1.00     47.0±2.02µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=3                   1.00     95.3±1.52µs        ? ?/sec    1.04     98.7±0.45µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=100                1.02     76.1±0.65µs        ? ?/sec    1.00     74.9±0.57µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=12                 1.04     55.1±2.43µs        ? ?/sec    1.00     52.9±2.05µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=3                  1.09     52.0±1.92µs        ? ?/sec    1.00     47.8±1.16µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=100                  1.00    117.7±1.39µs        ? ?/sec    1.03    121.4±0.88µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=12                   1.03     57.8±0.61µs        ? ?/sec    1.00     55.9±0.38µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=3                    1.00     89.6±0.69µs        ? ?/sec    1.02     91.4±0.46µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=100                 1.03    125.4±1.16µs        ? ?/sec    1.00    121.6±0.87µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=12                  1.00     68.1±0.37µs        ? ?/sec    1.00     67.8±1.51µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=3                   1.01     77.9±0.69µs        ? ?/sec    1.00     77.3±0.63µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=100                   1.00     65.0±1.78µs        ? ?/sec    1.00     64.8±0.47µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=12                    1.00     26.2±0.08µs        ? ?/sec    1.01     26.5±0.05µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=3                     1.00     28.1±0.16µs        ? ?/sec    1.01     28.3±0.21µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=100                  1.00     68.0±0.23µs        ? ?/sec    1.01     68.4±0.29µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=12                   1.00     29.1±0.06µs        ? ?/sec    1.01     29.3±0.05µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=3                    1.00     31.5±0.06µs        ? ?/sec    1.00     31.4±0.06µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=100                   1.01     65.8±0.49µs        ? ?/sec    1.00     65.4±0.32µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=12                    1.00     27.0±0.09µs        ? ?/sec    1.03     27.7±0.19µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=3                     1.00     28.9±0.10µs        ? ?/sec    1.02     29.4±0.31µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=100                  1.00     69.4±0.20µs        ? ?/sec    1.00     69.5±0.33µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=12                   1.00     29.4±0.18µs        ? ?/sec    1.01     29.6±0.06µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=3                    1.05     33.7±3.93µs        ? ?/sec    1.00     32.0±0.06µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=0%/nulls=0%          1.09     64.4±0.53µs        ? ?/sec    1.00     58.9±0.50µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=0%/nulls=20%         1.04     77.9±0.60µs        ? ?/sec    1.00     75.0±1.29µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=25%/nulls=0%         1.04    118.1±1.36µs        ? ?/sec    1.00    114.1±1.31µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=25%/nulls=20%        1.10    141.9±1.13µs        ? ?/sec    1.00    129.5±2.00µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=75%/nulls=0%         1.00    150.4±2.04µs        ? ?/sec    1.00    150.9±2.68µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=75%/nulls=20%        1.02    151.8±0.96µs        ? ?/sec    1.00    149.3±1.66µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=0%/nulls=0%           1.00    126.1±1.47µs        ? ?/sec    1.00    125.8±0.81µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=0%/nulls=20%          1.07     70.0±0.94µs        ? ?/sec    1.00     65.4±0.93µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=25%/nulls=0%          1.03    143.5±1.18µs        ? ?/sec    1.00    139.8±1.36µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=25%/nulls=20%         1.08    113.8±0.92µs        ? ?/sec    1.00    105.8±1.11µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=75%/nulls=0%          1.00    148.7±1.63µs        ? ?/sec    1.01    150.2±1.67µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=75%/nulls=20%         1.01    153.5±1.64µs        ? ?/sec    1.00    151.2±1.59µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=0%/nulls=0%            1.06     40.8±0.52µs        ? ?/sec    1.00     38.5±0.42µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=0%/nulls=20%           1.36     63.3±1.03µs        ? ?/sec    1.00     46.4±2.08µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=25%/nulls=0%           1.17     71.7±0.55µs        ? ?/sec    1.00     61.5±1.06µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=25%/nulls=20%          1.19     64.6±0.97µs        ? ?/sec    1.00     54.3±1.13µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=75%/nulls=0%           1.03    101.5±0.79µs        ? ?/sec    1.00     98.5±1.01µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=75%/nulls=20%          1.19    130.1±1.98µs        ? ?/sec    1.00    109.2±1.66µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=0%/nulls=0%            1.07     41.2±0.44µs        ? ?/sec    1.00     38.5±0.33µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=0%/nulls=20%           1.03     40.4±1.20µs        ? ?/sec    1.00     39.1±1.15µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=25%/nulls=0%           1.06     77.6±1.51µs        ? ?/sec    1.00     73.0±0.99µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=25%/nulls=20%          1.22     71.4±0.83µs        ? ?/sec    1.00     58.7±1.38µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=75%/nulls=0%           1.00    126.0±1.61µs        ? ?/sec    1.02    128.0±1.60µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=75%/nulls=20%          1.04    115.0±1.64µs        ? ?/sec    1.00    110.9±1.48µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=100             1.00    101.2±1.71µs        ? ?/sec    1.01    102.1±2.37µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=12              1.09     31.6±1.32µs        ? ?/sec    1.00     29.1±0.64µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=3               1.00     38.0±0.71µs        ? ?/sec    1.00     38.1±1.62µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=100            1.04    115.2±0.81µs        ? ?/sec    1.00    110.3±0.62µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=12             1.00     65.2±0.85µs        ? ?/sec    1.16     75.5±0.62µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=3              1.00     28.0±0.75µs        ? ?/sec    1.19     33.4±0.79µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=100              1.00    114.9±1.01µs        ? ?/sec    1.00    114.4±1.17µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=12               1.00     61.0±0.70µs        ? ?/sec    1.00     60.8±0.67µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=3                1.09     29.4±0.69µs        ? ?/sec    1.00     27.0±0.76µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=100             1.05     97.3±1.40µs        ? ?/sec    1.00     93.0±1.27µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=12              1.00     34.8±0.90µs        ? ?/sec    1.16     40.4±0.70µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=3               1.00     33.4±0.87µs        ? ?/sec    1.20     40.0±0.71µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=100               1.00     75.1±0.31µs        ? ?/sec    1.02     76.2±0.47µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=12                1.00     17.8±0.03µs        ? ?/sec    1.01     17.9±0.04µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=3                 1.00     17.7±0.04µs        ? ?/sec    1.02     18.0±0.04µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=100              1.00     69.5±0.56µs        ? ?/sec    1.01     70.3±0.26µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=12               1.00     21.7±0.08µs        ? ?/sec    1.02     22.1±0.06µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=3                1.00     21.7±0.07µs        ? ?/sec    1.02     22.1±0.04µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=100               1.00     75.3±0.33µs        ? ?/sec    1.02     76.7±0.21µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=12                1.00     17.9±0.05µs        ? ?/sec    1.04     18.5±0.09µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=3                 1.00     18.1±0.28µs        ? ?/sec    1.02     18.5±0.13µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=100              1.00     70.3±0.26µs        ? ?/sec    1.00     70.6±0.25µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=12               1.00     21.7±0.04µs        ? ?/sec    1.02     22.2±0.09µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=3                1.00     21.7±0.05µs        ? ?/sec    1.02     22.2±0.05µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=0%/nulls=0%      1.00     63.2±1.20µs        ? ?/sec    1.07     67.9±1.28µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=0%/nulls=20%     1.03     92.4±1.31µs        ? ?/sec    1.00     89.3±1.58µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=25%/nulls=0%     1.00     82.9±1.24µs        ? ?/sec    1.05     86.7±2.14µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=25%/nulls=20%    1.11    115.1±2.42µs        ? ?/sec    1.00    103.4±2.10µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=75%/nulls=0%     1.00    111.5±1.93µs        ? ?/sec    1.02    114.2±1.95µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=75%/nulls=20%    1.07    129.1±2.53µs        ? ?/sec    1.00    121.1±2.94µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=0%/nulls=0%       1.00     85.7±1.23µs        ? ?/sec    1.04     89.1±1.78µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=0%/nulls=20%      1.01    107.4±1.46µs        ? ?/sec    1.00    106.3±1.46µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=25%/nulls=0%      1.00    118.7±1.33µs        ? ?/sec    1.00    118.2±3.62µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=25%/nulls=20%     1.23     98.2±0.94µs        ? ?/sec    1.00     80.2±2.95µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=75%/nulls=0%      1.00    122.0±0.91µs        ? ?/sec    1.02    123.9±2.21µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=75%/nulls=20%     1.14    128.2±1.34µs        ? ?/sec    1.00    112.6±2.16µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=0%/nulls=0%        1.00     35.7±0.45µs        ? ?/sec    1.01     36.1±0.50µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=0%/nulls=20%       1.01     31.4±0.36µs        ? ?/sec    1.00     31.1±0.23µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=25%/nulls=0%       1.00     58.8±1.51µs        ? ?/sec    1.22     72.0±0.85µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=25%/nulls=20%      1.30     63.6±1.04µs        ? ?/sec    1.00     48.8±0.54µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=75%/nulls=0%       1.01     79.2±2.51µs        ? ?/sec    1.00     78.6±0.84µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=75%/nulls=20%      1.09    106.9±2.15µs        ? ?/sec    1.00     98.2±1.13µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=0%/nulls=0%        1.00     35.0±0.35µs        ? ?/sec    1.06     37.0±0.70µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=0%/nulls=20%       1.03     32.1±0.28µs        ? ?/sec    1.00     31.2±0.26µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=25%/nulls=0%       1.00     54.8±1.65µs        ? ?/sec    1.20     65.9±0.95µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=25%/nulls=20%      1.37     55.7±1.08µs        ? ?/sec    1.00     40.7±0.49µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=75%/nulls=0%       1.00     68.7±0.90µs        ? ?/sec    1.04     71.4±0.53µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=75%/nulls=20%      1.18    106.0±1.64µs        ? ?/sec    1.00     89.5±4.04µs        ? ?/sec
in_list_cols/Int32/list=28/match=0%/nulls=0%           1.00     50.9±0.31µs        ? ?/sec    1.02     52.0±0.43µs        ? ?/sec
in_list_cols/Int32/list=28/match=0%/nulls=20%          1.00     66.1±0.22µs        ? ?/sec    1.03     68.3±0.24µs        ? ?/sec
in_list_cols/Int32/list=28/match=100%/nulls=0%         1.00   1830.3±6.94ns        ? ?/sec    1.00   1829.6±5.83ns        ? ?/sec
in_list_cols/Int32/list=28/match=100%/nulls=20%        1.00     65.5±0.25µs        ? ?/sec    1.04     68.1±0.48µs        ? ?/sec
in_list_cols/Int32/list=28/match=50%/nulls=0%          1.00     27.4±0.08µs        ? ?/sec    1.00     27.4±0.48µs        ? ?/sec
in_list_cols/Int32/list=28/match=50%/nulls=20%         1.00     66.5±0.38µs        ? ?/sec    1.03     68.5±0.60µs        ? ?/sec
in_list_cols/Int32/list=3/match=0%/nulls=0%            1.00      5.5±0.01µs        ? ?/sec    1.00      5.5±0.02µs        ? ?/sec
in_list_cols/Int32/list=3/match=0%/nulls=20%           1.00      6.7±0.02µs        ? ?/sec    1.00      6.7±0.02µs        ? ?/sec
in_list_cols/Int32/list=3/match=100%/nulls=0%          1.00   1827.4±7.31ns        ? ?/sec    1.00   1822.2±4.98ns        ? ?/sec
in_list_cols/Int32/list=3/match=100%/nulls=20%         1.00      6.7±0.01µs        ? ?/sec    1.00      6.7±0.02µs        ? ?/sec
in_list_cols/Int32/list=3/match=50%/nulls=0%           1.00      5.5±0.02µs        ? ?/sec    1.00      5.5±0.01µs        ? ?/sec
in_list_cols/Int32/list=3/match=50%/nulls=20%          1.00      6.7±0.01µs        ? ?/sec    1.00      6.7±0.01µs        ? ?/sec
in_list_cols/Int32/list=8/match=0%/nulls=0%            1.00     14.5±0.06µs        ? ?/sec    1.00     14.5±0.04µs        ? ?/sec
in_list_cols/Int32/list=8/match=0%/nulls=20%           1.00     18.5±0.04µs        ? ?/sec    1.01     18.6±0.09µs        ? ?/sec
in_list_cols/Int32/list=8/match=100%/nulls=0%          1.01   1829.9±8.07ns        ? ?/sec    1.00   1817.6±5.70ns        ? ?/sec
in_list_cols/Int32/list=8/match=100%/nulls=20%         1.00     18.5±0.05µs        ? ?/sec    1.00     18.6±0.05µs        ? ?/sec
in_list_cols/Int32/list=8/match=50%/nulls=0%           1.00     14.5±0.03µs        ? ?/sec    1.00     14.5±0.03µs        ? ?/sec
in_list_cols/Int32/list=8/match=50%/nulls=20%          1.00     18.5±0.05µs        ? ?/sec    1.00     18.5±0.07µs        ? ?/sec
in_list_cols/Utf8/list=28/match=0%                     1.00    178.0±0.16µs        ? ?/sec    1.00    178.4±0.51µs        ? ?/sec
in_list_cols/Utf8/list=28/match=100%                   1.00    725.6±6.55µs        ? ?/sec    1.00    728.8±1.15µs        ? ?/sec
in_list_cols/Utf8/list=28/match=50%                    1.00   1154.0±3.49µs        ? ?/sec    1.00   1150.8±1.70µs        ? ?/sec
in_list_cols/Utf8/list=3/match=0%                      1.00     18.7±0.03µs        ? ?/sec    1.00     18.7±0.07µs        ? ?/sec
in_list_cols/Utf8/list=3/match=100%                    1.00     76.3±1.67µs        ? ?/sec    1.02     78.0±1.56µs        ? ?/sec
in_list_cols/Utf8/list=3/match=50%                     1.01     98.9±0.51µs        ? ?/sec    1.00     97.9±0.87µs        ? ?/sec
in_list_cols/Utf8/list=8/match=0%                      1.00     50.4±0.10µs        ? ?/sec    1.00     50.3±0.07µs        ? ?/sec
in_list_cols/Utf8/list=8/match=100%                    1.00    204.3±0.92µs        ? ?/sec    1.01    206.2±1.11µs        ? ?/sec
in_list_cols/Utf8/list=8/match=50%                     1.01    321.0±0.73µs        ? ?/sec    1.00    318.5±0.91µs        ? ?/sec

Resource Usage

in_list — base (merge-base)

Metric Value
Wall time 485.1s
Peak memory 44.0 MiB
Avg memory 11.9 MiB
CPU user 578.2s
CPU sys 1.8s
Peak spill 0 B

in_list — branch

Metric Value
Wall time 475.1s
Peak memory 43.7 MiB
Avg memory 12.0 MiB
CPU user 580.2s
CPU sys 1.6s
Peak spill 0 B

File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

Comparing codex/in-list-dictionary-dispatch (33a3f38) to c396e6a diff

Run configuration
run benchmark in_list
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"
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                                                  HEAD                                   codex_in-list-dictionary-dispatch
-----                                                  ----                                   ---------------------------------
in_list/Float32/list=100/nulls=0%                      1.40     31.5±0.89µs        ? ?/sec    1.00     22.6±0.68µs        ? ?/sec
in_list/Float32/list=100/nulls=20%                     1.00     18.3±0.31µs        ? ?/sec    1.77     32.3±0.71µs        ? ?/sec
in_list/Float32/list=28/nulls=0%                       1.00     14.5±0.05µs        ? ?/sec    1.00     14.5±0.03µs        ? ?/sec
in_list/Float32/list=28/nulls=20%                      1.00     14.6±0.03µs        ? ?/sec    1.00     14.5±0.02µs        ? ?/sec
in_list/Float32/list=3/nulls=0%                        1.00      3.2±0.01µs        ? ?/sec    1.00      3.1±0.01µs        ? ?/sec
in_list/Float32/list=3/nulls=20%                       1.00      3.2±0.01µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
in_list/Float32/list=8/nulls=0%                        1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
in_list/Float32/list=8/nulls=20%                       1.00      5.2±0.04µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=100/nulls=0%                        1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=100/nulls=20%                       1.00      5.3±0.02µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
in_list/Int16/list=28/nulls=0%                         1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/Int16/list=28/nulls=20%                        1.00      5.3±0.02µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
in_list/Int16/list=3/nulls=0%                          1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
in_list/Int16/list=3/nulls=20%                         1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
in_list/Int16/list=8/nulls=0%                          1.00      4.5±0.01µs        ? ?/sec    1.00      4.5±0.01µs        ? ?/sec
in_list/Int16/list=8/nulls=20%                         1.00      4.6±0.01µs        ? ?/sec    1.00      4.6±0.01µs        ? ?/sec
in_list/Int32/list=100/nulls=0%                        1.00     27.8±0.86µs        ? ?/sec    2.30     63.8±0.49µs        ? ?/sec
in_list/Int32/list=100/nulls=20%                       1.18     21.3±0.45µs        ? ?/sec    1.00     18.0±0.49µs        ? ?/sec
in_list/Int32/list=28/nulls=0%                         1.00     14.5±0.03µs        ? ?/sec    1.00     14.4±0.03µs        ? ?/sec
in_list/Int32/list=28/nulls=20%                        1.00     14.6±0.08µs        ? ?/sec    1.00     14.6±0.04µs        ? ?/sec
in_list/Int32/list=3/nulls=0%                          1.00      3.2±0.01µs        ? ?/sec    1.00      3.1±0.00µs        ? ?/sec
in_list/Int32/list=3/nulls=20%                         1.00      3.2±0.01µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
in_list/Int32/list=8/nulls=0%                          1.00      5.1±0.01µs        ? ?/sec    1.00      5.1±0.01µs        ? ?/sec
in_list/Int32/list=8/nulls=20%                         1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/TimestampNs/list=100/nulls=0%                  1.00     53.2±0.53µs        ? ?/sec    1.03     54.9±2.99µs        ? ?/sec
in_list/TimestampNs/list=100/nulls=20%                 1.02     62.6±1.76µs        ? ?/sec    1.00     61.5±0.58µs        ? ?/sec
in_list/TimestampNs/list=28/nulls=0%                   1.06     34.4±1.35µs        ? ?/sec    1.00     32.4±1.78µs        ? ?/sec
in_list/TimestampNs/list=28/nulls=20%                  1.02     45.7±1.58µs        ? ?/sec    1.00     44.8±2.14µs        ? ?/sec
in_list/TimestampNs/list=3/nulls=0%                    1.00      3.7±0.01µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
in_list/TimestampNs/list=3/nulls=20%                   1.00      3.8±0.01µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
in_list/TimestampNs/list=8/nulls=0%                    1.00      7.3±0.01µs        ? ?/sec    1.00      7.3±0.01µs        ? ?/sec
in_list/TimestampNs/list=8/nulls=20%                   1.00      7.4±0.03µs        ? ?/sec    1.00      7.4±0.01µs        ? ?/sec
in_list/UInt8/list=100/nulls=0%                        1.02      5.3±0.08µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/UInt8/list=100/nulls=20%                       1.00      5.3±0.04µs        ? ?/sec    1.00      5.3±0.01µs        ? ?/sec
in_list/UInt8/list=28/nulls=0%                         1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
in_list/UInt8/list=28/nulls=20%                        1.00      5.3±0.01µs        ? ?/sec    1.01      5.3±0.05µs        ? ?/sec
in_list/UInt8/list=3/nulls=0%                          1.00      3.2±0.00µs        ? ?/sec    1.00      3.2±0.01µs        ? ?/sec
in_list/UInt8/list=3/nulls=20%                         1.00      3.3±0.00µs        ? ?/sec    1.00      3.3±0.01µs        ? ?/sec
in_list/UInt8/list=8/nulls=0%                          1.00      3.7±0.01µs        ? ?/sec    1.00      3.7±0.01µs        ? ?/sec
in_list/UInt8/list=8/nulls=20%                         1.00      3.8±0.01µs        ? ?/sec    1.00      3.8±0.01µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=100                 1.06     82.9±1.30µs        ? ?/sec    1.00     78.2±0.88µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=12                  1.10     51.8±1.36µs        ? ?/sec    1.00     47.0±0.70µs        ? ?/sec
in_list/Utf8/list=100/nulls=0%/str=3                   1.00     97.9±2.10µs        ? ?/sec    1.01     99.2±2.72µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=100                1.04     77.6±0.97µs        ? ?/sec    1.00     74.5±0.53µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=12                 1.02     56.4±2.37µs        ? ?/sec    1.00     55.1±2.11µs        ? ?/sec
in_list/Utf8/list=100/nulls=20%/str=3                  1.00     50.1±2.78µs        ? ?/sec    1.00     50.0±1.45µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=100                  1.00    118.6±1.14µs        ? ?/sec    1.00    118.9±0.76µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=12                   1.10     59.2±1.58µs        ? ?/sec    1.00     53.9±0.42µs        ? ?/sec
in_list/Utf8/list=28/nulls=0%/str=3                    1.00     87.2±0.53µs        ? ?/sec    1.06     92.8±3.32µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=100                 1.01    122.4±3.41µs        ? ?/sec    1.00    120.6±0.96µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=12                  1.00     67.4±0.43µs        ? ?/sec    1.03     69.5±2.25µs        ? ?/sec
in_list/Utf8/list=28/nulls=20%/str=3                   1.01     77.9±0.47µs        ? ?/sec    1.00     77.1±0.40µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=100                   1.00     65.5±0.25µs        ? ?/sec    1.00     65.7±0.50µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=12                    1.00     26.3±0.10µs        ? ?/sec    1.01     26.6±0.04µs        ? ?/sec
in_list/Utf8/list=3/nulls=0%/str=3                     1.00     28.3±0.11µs        ? ?/sec    1.01     28.6±0.20µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=100                  1.00     68.2±0.30µs        ? ?/sec    1.00     68.4±0.22µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=12                   1.00     29.0±0.11µs        ? ?/sec    1.01     29.2±0.12µs        ? ?/sec
in_list/Utf8/list=3/nulls=20%/str=3                    1.00     31.4±0.07µs        ? ?/sec    1.00     31.4±0.10µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=100                   1.00     65.9±0.44µs        ? ?/sec    1.00     65.7±0.37µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=12                    1.00     26.6±0.07µs        ? ?/sec    1.02     27.2±0.08µs        ? ?/sec
in_list/Utf8/list=8/nulls=0%/str=3                     1.01     29.5±0.39µs        ? ?/sec    1.00     29.1±0.09µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=100                  1.00     69.1±0.26µs        ? ?/sec    1.00     69.0±0.17µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=12                   1.00     29.2±0.05µs        ? ?/sec    1.01     29.7±0.07µs        ? ?/sec
in_list/Utf8/list=8/nulls=20%/str=3                    1.00     32.0±0.12µs        ? ?/sec    1.00     32.0±0.07µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=0%/nulls=0%          1.08     63.6±0.51µs        ? ?/sec    1.00     59.0±0.44µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=0%/nulls=20%         1.06     78.0±0.73µs        ? ?/sec    1.00     73.6±0.62µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=25%/nulls=0%         1.02    117.8±1.21µs        ? ?/sec    1.00    115.4±1.50µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=25%/nulls=20%        1.08    140.8±1.23µs        ? ?/sec    1.00    130.2±1.42µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=75%/nulls=0%         1.00    148.3±1.67µs        ? ?/sec    1.01    149.2±1.17µs        ? ?/sec
in_list/Utf8/mixed/list=100/match=75%/nulls=20%        1.04    151.3±1.51µs        ? ?/sec    1.00    146.2±1.71µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=0%/nulls=0%           1.01    126.5±1.19µs        ? ?/sec    1.00    125.6±1.27µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=0%/nulls=20%          1.07     71.1±0.64µs        ? ?/sec    1.00     66.3±0.59µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=25%/nulls=0%          1.01    143.0±1.06µs        ? ?/sec    1.00    141.7±1.49µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=25%/nulls=20%         1.07    114.2±0.97µs        ? ?/sec    1.00    106.8±2.36µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=75%/nulls=0%          1.00    150.9±1.73µs        ? ?/sec    1.00    151.0±1.23µs        ? ?/sec
in_list/Utf8/mixed/list=28/match=75%/nulls=20%         1.01    153.4±1.52µs        ? ?/sec    1.00    151.3±1.23µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=0%/nulls=0%            1.04     40.3±0.38µs        ? ?/sec    1.00     38.6±0.34µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=0%/nulls=20%           1.39     62.8±1.08µs        ? ?/sec    1.00     45.2±2.76µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=25%/nulls=0%           1.15     71.3±0.57µs        ? ?/sec    1.00     62.0±1.09µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=25%/nulls=20%          1.17     63.8±0.73µs        ? ?/sec    1.00     54.4±1.47µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=75%/nulls=0%           1.03    100.4±0.92µs        ? ?/sec    1.00     97.9±0.67µs        ? ?/sec
in_list/Utf8/mixed/list=3/match=75%/nulls=20%          1.23    131.0±1.21µs        ? ?/sec    1.00    106.6±1.77µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=0%/nulls=0%            1.06     41.2±0.35µs        ? ?/sec    1.00     39.0±0.41µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=0%/nulls=20%           1.03     40.3±1.23µs        ? ?/sec    1.00     39.1±1.21µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=25%/nulls=0%           1.08     77.9±1.99µs        ? ?/sec    1.00     71.9±1.00µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=25%/nulls=20%          1.16     69.5±0.56µs        ? ?/sec    1.00     59.9±1.75µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=75%/nulls=0%           1.00    126.2±0.87µs        ? ?/sec    1.03    129.9±0.87µs        ? ?/sec
in_list/Utf8/mixed/list=8/match=75%/nulls=20%          1.04    114.4±1.81µs        ? ?/sec    1.00    109.5±1.21µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=100             1.00     98.8±0.65µs        ? ?/sec    1.06    105.0±0.77µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=12              1.00     30.7±0.76µs        ? ?/sec    1.06     32.6±2.82µs        ? ?/sec
in_list/Utf8View/list=100/nulls=0%/str=3               1.04     40.0±1.93µs        ? ?/sec    1.00     38.4±1.30µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=100            1.03    113.4±0.92µs        ? ?/sec    1.00    109.6±0.78µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=12             1.00     65.0±0.62µs        ? ?/sec    1.17     75.9±0.73µs        ? ?/sec
in_list/Utf8View/list=100/nulls=20%/str=3              1.00     27.4±0.54µs        ? ?/sec    1.21     33.1±0.91µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=100              1.03    115.7±2.63µs        ? ?/sec    1.00    111.8±2.45µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=12               1.01     62.0±0.49µs        ? ?/sec    1.00     61.6±0.42µs        ? ?/sec
in_list/Utf8View/list=28/nulls=0%/str=3                1.09     29.2±0.89µs        ? ?/sec    1.00     26.8±0.69µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=100             1.04     97.2±1.78µs        ? ?/sec    1.00     93.5±0.89µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=12              1.00     34.0±0.83µs        ? ?/sec    1.21     41.1±0.61µs        ? ?/sec
in_list/Utf8View/list=28/nulls=20%/str=3               1.00     35.1±0.87µs        ? ?/sec    1.15     40.4±0.67µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=100               1.00     75.6±0.25µs        ? ?/sec    1.01     76.1±0.47µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=12                1.00     17.8±0.05µs        ? ?/sec    1.01     18.0±0.04µs        ? ?/sec
in_list/Utf8View/list=3/nulls=0%/str=3                 1.00     17.7±0.03µs        ? ?/sec    1.02     18.2±0.05µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=100              1.01     70.7±0.21µs        ? ?/sec    1.00     69.7±0.41µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=12               1.00     21.8±0.04µs        ? ?/sec    1.01     22.1±0.07µs        ? ?/sec
in_list/Utf8View/list=3/nulls=20%/str=3                1.00     21.7±0.04µs        ? ?/sec    1.02     22.1±0.14µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=100               1.01     77.0±0.30µs        ? ?/sec    1.00     76.5±0.23µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=12                1.00     17.9±0.06µs        ? ?/sec    1.03     18.5±0.11µs        ? ?/sec
in_list/Utf8View/list=8/nulls=0%/str=3                 1.00     18.3±0.47µs        ? ?/sec    1.01     18.4±0.04µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=100              1.01     71.0±0.42µs        ? ?/sec    1.00     70.5±0.69µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=12               1.00     21.8±0.10µs        ? ?/sec    1.02     22.3±0.08µs        ? ?/sec
in_list/Utf8View/list=8/nulls=20%/str=3                1.00     21.8±0.06µs        ? ?/sec    1.02     22.3±0.10µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=0%/nulls=0%      1.00     63.6±1.55µs        ? ?/sec    1.02     64.9±1.15µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=0%/nulls=20%     1.03     91.7±1.12µs        ? ?/sec    1.00     89.3±2.38µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=25%/nulls=0%     1.00     83.7±1.42µs        ? ?/sec    1.01     84.9±1.69µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=25%/nulls=20%    1.13    115.4±1.47µs        ? ?/sec    1.00    101.9±3.06µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=75%/nulls=0%     1.00    112.0±1.69µs        ? ?/sec    1.02    114.6±1.73µs        ? ?/sec
in_list/Utf8View/mixed/list=100/match=75%/nulls=20%    1.09    129.8±1.74µs        ? ?/sec    1.00    119.0±3.26µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=0%/nulls=0%       1.00     84.4±1.64µs        ? ?/sec    1.06     89.4±1.56µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=0%/nulls=20%      1.01    107.1±1.41µs        ? ?/sec    1.00    106.4±1.78µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=25%/nulls=0%      1.01    118.1±2.41µs        ? ?/sec    1.00    116.4±1.40µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=25%/nulls=20%     1.26     98.9±1.37µs        ? ?/sec    1.00     78.3±2.66µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=75%/nulls=0%      1.02    122.4±4.79µs        ? ?/sec    1.00    119.5±0.93µs        ? ?/sec
in_list/Utf8View/mixed/list=28/match=75%/nulls=20%     1.14    128.1±1.25µs        ? ?/sec    1.00    112.0±3.67µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=0%/nulls=0%        1.00     35.2±0.42µs        ? ?/sec    1.05     36.8±0.47µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=0%/nulls=20%       1.02     31.4±0.24µs        ? ?/sec    1.00     30.9±0.22µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=25%/nulls=0%       1.00     57.9±0.92µs        ? ?/sec    1.24     71.8±1.96µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=25%/nulls=20%      1.30     63.7±0.82µs        ? ?/sec    1.00     49.1±0.90µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=75%/nulls=0%       1.00     76.8±0.85µs        ? ?/sec    1.03     78.7±1.07µs        ? ?/sec
in_list/Utf8View/mixed/list=3/match=75%/nulls=20%      1.08    107.8±2.16µs        ? ?/sec    1.00     99.5±2.29µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=0%/nulls=0%        1.00     34.8±0.39µs        ? ?/sec    1.07     37.2±0.59µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=0%/nulls=20%       1.03     31.9±0.32µs        ? ?/sec    1.00     30.9±0.25µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=25%/nulls=0%       1.00     54.4±1.47µs        ? ?/sec    1.24     67.6±1.37µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=25%/nulls=20%      1.40     56.3±1.30µs        ? ?/sec    1.00     40.2±0.49µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=75%/nulls=0%       1.00     69.9±2.04µs        ? ?/sec    1.03     71.8±0.82µs        ? ?/sec
in_list/Utf8View/mixed/list=8/match=75%/nulls=20%      1.20    105.6±1.31µs        ? ?/sec    1.00     88.0±3.80µs        ? ?/sec
in_list_cols/Int32/list=28/match=0%/nulls=0%           1.00     51.0±0.19µs        ? ?/sec    1.00     51.1±0.30µs        ? ?/sec
in_list_cols/Int32/list=28/match=0%/nulls=20%          1.00     67.1±0.53µs        ? ?/sec    1.00     67.1±0.33µs        ? ?/sec
in_list_cols/Int32/list=28/match=100%/nulls=0%         1.00   1815.6±6.46ns        ? ?/sec    1.01   1828.2±4.80ns        ? ?/sec
in_list_cols/Int32/list=28/match=100%/nulls=20%        1.01     67.7±0.42µs        ? ?/sec    1.00     67.1±0.31µs        ? ?/sec
in_list_cols/Int32/list=28/match=50%/nulls=0%          1.00     27.2±0.06µs        ? ?/sec    1.01     27.6±0.09µs        ? ?/sec
in_list_cols/Int32/list=28/match=50%/nulls=20%         1.00     66.9±0.45µs        ? ?/sec    1.01     67.9±0.31µs        ? ?/sec
in_list_cols/Int32/list=3/match=0%/nulls=0%            1.00      5.4±0.01µs        ? ?/sec    1.00      5.5±0.01µs        ? ?/sec
in_list_cols/Int32/list=3/match=0%/nulls=20%           1.00      6.7±0.02µs        ? ?/sec    1.00      6.7±0.03µs        ? ?/sec
in_list_cols/Int32/list=3/match=100%/nulls=0%          1.00   1821.0±6.14ns        ? ?/sec    1.00   1829.8±9.00ns        ? ?/sec
in_list_cols/Int32/list=3/match=100%/nulls=20%         1.01      6.7±0.02µs        ? ?/sec    1.00      6.7±0.02µs        ? ?/sec
in_list_cols/Int32/list=3/match=50%/nulls=0%           1.00      5.5±0.02µs        ? ?/sec    1.00      5.5±0.01µs        ? ?/sec
in_list_cols/Int32/list=3/match=50%/nulls=20%          1.00      6.7±0.02µs        ? ?/sec    1.00      6.7±0.03µs        ? ?/sec
in_list_cols/Int32/list=8/match=0%/nulls=0%            1.00     14.5±0.07µs        ? ?/sec    1.00     14.5±0.06µs        ? ?/sec
in_list_cols/Int32/list=8/match=0%/nulls=20%           1.00     18.7±0.05µs        ? ?/sec    1.00     18.7±0.04µs        ? ?/sec
in_list_cols/Int32/list=8/match=100%/nulls=0%          1.00   1814.9±7.52ns        ? ?/sec    1.01   1835.7±9.54ns        ? ?/sec
in_list_cols/Int32/list=8/match=100%/nulls=20%         1.00     18.6±0.08µs        ? ?/sec    1.01     18.8±0.06µs        ? ?/sec
in_list_cols/Int32/list=8/match=50%/nulls=0%           1.00     14.6±0.04µs        ? ?/sec    1.00     14.5±0.03µs        ? ?/sec
in_list_cols/Int32/list=8/match=50%/nulls=20%          1.00     18.7±0.04µs        ? ?/sec    1.00     18.7±0.06µs        ? ?/sec
in_list_cols/Utf8/list=28/match=0%                     1.00    178.1±0.40µs        ? ?/sec    1.00    178.1±0.33µs        ? ?/sec
in_list_cols/Utf8/list=28/match=100%                   1.00    746.4±1.34µs        ? ?/sec    1.00    745.5±1.03µs        ? ?/sec
in_list_cols/Utf8/list=28/match=50%                    1.00   1152.2±1.66µs        ? ?/sec    1.00   1149.2±2.04µs        ? ?/sec
in_list_cols/Utf8/list=3/match=0%                      1.00     18.8±0.09µs        ? ?/sec    1.00     18.7±0.08µs        ? ?/sec
in_list_cols/Utf8/list=3/match=100%                    1.02     78.1±1.13µs        ? ?/sec    1.00     76.8±0.96µs        ? ?/sec
in_list_cols/Utf8/list=3/match=50%                     1.00     96.0±0.89µs        ? ?/sec    1.05    101.2±0.77µs        ? ?/sec
in_list_cols/Utf8/list=8/match=0%                      1.00     50.7±0.14µs        ? ?/sec    1.00     50.6±0.10µs        ? ?/sec
in_list_cols/Utf8/list=8/match=100%                    1.02    213.4±0.53µs        ? ?/sec    1.00    209.3±0.44µs        ? ?/sec
in_list_cols/Utf8/list=8/match=50%                     1.00    318.9±1.88µs        ? ?/sec    1.00    320.2±1.08µs        ? ?/sec

Resource Usage

in_list — base (merge-base)

Metric Value
Wall time 280.1s
Peak memory 44.8 MiB
Avg memory 20.6 MiB
CPU user 578.9s
CPU sys 1.6s
Peak spill 0 B

in_list — branch

Metric Value
Wall time 305.1s
Peak memory 43.1 MiB
Avg memory 18.5 MiB
CPU user 581.2s
CPU sys 1.8s
Peak spill 0 B

File an issue against this benchmark runner

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 79.89822% with 79 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.43%. Comparing base (8332cfa) to head (33a3f38).
⚠️ Report is 54 commits behind head on main.

Files with missing lines Patch % Lines
...rc/expressions/in_list/fixed_size_binary_filter.rs 83.63% 13 Missing and 23 partials ⚠️
...-expr/src/expressions/in_list/dictionary_filter.rs 73.68% 7 Missing and 13 partials ⚠️
.../physical-expr/src/expressions/in_list/strategy.rs 72.72% 3 Missing and 9 partials ⚠️
...atafusion/physical-expr/src/expressions/in_list.rs 80.43% 1 Missing and 8 partials ⚠️
...l-expr/src/expressions/in_list/primitive_filter.rs 71.42% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #24662      +/-   ##
==========================================
+ Coverage   81.32%   81.43%   +0.11%     
==========================================
  Files        1117     1120       +3     
  Lines      396269   399920    +3651     
  Branches   396269   399920    +3651     
==========================================
+ Hits       322260   325690    +3430     
+ Misses      55186    55178       -8     
- Partials    18823    19052     +229     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@geoffreyclaude

Copy link
Copy Markdown
Contributor Author

run benchmark in_list_strategy
baseline:
ref: c396e6a

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark running (GKE) | trigger
Instance: c4a-highmem-16 (12 vCPU / 65 GiB) | Linux bench-c5411704804-1941-dc6qs 6.12.85+ #1 SMP Sat Jun 27 09:31:30 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 codex/in-list-dictionary-dispatch (33a3f38) to c396e6a diff

Run configuration
run benchmark in_list_strategy
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"

Results will be posted here when complete


File an issue against this benchmark runner

@adriangbot

Copy link
Copy Markdown

🤖 Benchmark completed (GKE) | trigger

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

Comparing codex/in-list-dictionary-dispatch (33a3f38) to c396e6a diff

Run configuration
run benchmark in_list_strategy
baseline:
  ref: "c396e6ae465a96725363e7715702d140ca97a2ca"
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                                                                HEAD                                   codex_in-list-dictionary-dispatch
-----                                                                ----                                   ---------------------------------
dictionary/i32/dict=10/list=16                                       1.01      7.7±0.01µs        ? ?/sec    1.00      7.7±0.01µs        ? ?/sec
dictionary/i32/dict=100/list=16                                      1.01      7.8±0.01µs        ? ?/sec    1.00      7.7±0.01µs        ? ?/sec
dictionary/i32/dict=100/list=16/NOT_IN                               1.02      8.0±0.10µs        ? ?/sec    1.00      7.8±0.01µs        ? ?/sec
dictionary/i32/dict=100/list=4                                       1.01      7.8±0.03µs        ? ?/sec    1.00      7.7±0.00µs        ? ?/sec
dictionary/i32/dict=100/list=64                                      1.01      7.8±0.02µs        ? ?/sec    1.00      7.7±0.00µs        ? ?/sec
dictionary/i32/dict=1000/list=16                                     1.01      8.8±0.05µs        ? ?/sec    1.00      8.7±0.01µs        ? ?/sec
dictionary/utf8_long/dict=100/list=16                                1.01      8.3±0.01µs        ? ?/sec    1.00      8.2±0.02µs        ? ?/sec
dictionary/utf8_short/dict=50/list=32                                1.01      8.1±0.01µs        ? ?/sec    1.00      8.0±0.01µs        ? ?/sec
dictionary/utf8_short/dict=50/list=8                                 1.01      8.0±0.01µs        ? ?/sec    1.00      7.9±0.02µs        ? ?/sec
dictionary/utf8_short/dict=500/list=20                               1.01      9.6±0.01µs        ? ?/sec    1.00      9.5±0.02µs        ? ?/sec
dictionary_dispatch/i32/branchless/dictionary/list=4/batch=1         1.21    474.9±5.26ns        ? ?/sec    1.00    393.3±3.72ns        ? ?/sec
dictionary_dispatch/i32/branchless/dictionary/list=4/batch=64        1.18    532.4±5.43ns        ? ?/sec    1.00    452.8±3.86ns        ? ?/sec
dictionary_dispatch/i32/branchless/dictionary/list=4/batch=8         1.19    479.9±5.30ns        ? ?/sec    1.00    404.0±3.92ns        ? ?/sec
dictionary_dispatch/i32/branchless/dictionary/list=4/batch=8192      1.01      7.7±0.01µs        ? ?/sec    1.00      7.6±0.01µs        ? ?/sec
dictionary_dispatch/i32/branchless/plain/list=4/batch=1              1.01    241.7±2.05ns        ? ?/sec    1.00    239.6±1.45ns        ? ?/sec
dictionary_dispatch/i32/branchless/plain/list=4/batch=64             1.02    276.5±0.96ns        ? ?/sec    1.00    271.7±1.35ns        ? ?/sec
dictionary_dispatch/i32/branchless/plain/list=4/batch=8              1.00    241.9±1.23ns        ? ?/sec    1.00    242.5±1.24ns        ? ?/sec
dictionary_dispatch/i32/branchless/plain/list=4/batch=8192           1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.00µs        ? ?/sec
dictionary_dispatch/i32/hash_set/dictionary/list=64/batch=1          1.36    376.6±5.37ns        ? ?/sec    1.00    277.2±7.07ns        ? ?/sec
dictionary_dispatch/i32/hash_set/dictionary/list=64/batch=64         1.30    428.0±4.92ns        ? ?/sec    1.00    329.8±5.79ns        ? ?/sec
dictionary_dispatch/i32/hash_set/dictionary/list=64/batch=8          1.34    378.7±4.76ns        ? ?/sec    1.00    282.7±5.66ns        ? ?/sec
dictionary_dispatch/i32/hash_set/dictionary/list=64/batch=8192       1.01      7.6±0.01µs        ? ?/sec    1.00      7.5±0.01µs        ? ?/sec
dictionary_dispatch/i32/hash_set/plain/list=64/batch=1               1.01    121.0±0.63ns        ? ?/sec    1.00    119.9±2.10ns        ? ?/sec
dictionary_dispatch/i32/hash_set/plain/list=64/batch=64              1.01    230.8±0.51ns        ? ?/sec    1.00    228.9±2.23ns        ? ?/sec
dictionary_dispatch/i32/hash_set/plain/list=64/batch=8               1.00    132.8±1.12ns        ? ?/sec    1.00    132.9±2.22ns        ? ?/sec
dictionary_dispatch/i32/hash_set/plain/list=64/batch=8192            1.06     15.4±0.09µs        ? ?/sec    1.00     14.5±0.00µs        ? ?/sec
f32/large_list/list=64/match=0%                                      1.01     15.9±0.03µs        ? ?/sec    1.00     15.8±0.02µs        ? ?/sec
f32/large_list/list=64/match=50%                                     1.09     23.0±0.30µs        ? ?/sec    1.00     21.1±0.16µs        ? ?/sec
f32/small_list/list=32/match=0%                                      1.00     16.5±0.01µs        ? ?/sec    1.00     16.5±0.01µs        ? ?/sec
f32/small_list/list=32/match=50%                                     1.00     16.5±0.01µs        ? ?/sec    1.00     16.5±0.01µs        ? ?/sec
f32/small_list/list=4/match=0%                                       1.00      3.5±0.00µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
f32/small_list/list=4/match=50%                                      1.00      3.5±0.00µs        ? ?/sec    1.00      3.5±0.00µs        ? ?/sec
fixed_size_binary/fsb1/list=16/match=0%                              1.00      4.7±0.00µs        ? ?/sec    1.00      4.7±0.01µs        ? ?/sec
fixed_size_binary/fsb1/list=16/match=50%                             1.00      4.7±0.00µs        ? ?/sec    1.00      4.7±0.01µs        ? ?/sec
fixed_size_binary/fsb16/list=10000/match=0%                          1.00     14.3±0.02µs        ? ?/sec    1.00     14.2±0.01µs        ? ?/sec
fixed_size_binary/fsb16/list=10000/match=50%                         1.00     18.6±0.12µs        ? ?/sec    1.19     22.2±0.14µs        ? ?/sec
fixed_size_binary/fsb16/list=256/match=0%                            1.00     12.9±0.01µs        ? ?/sec    1.05     13.5±0.02µs        ? ?/sec
fixed_size_binary/fsb16/list=256/match=50%                           1.11     22.5±0.32µs        ? ?/sec    1.00     20.2±0.09µs        ? ?/sec
fixed_size_binary/fsb16/list=4/match=0%                              1.00     11.6±0.01µs        ? ?/sec    1.00     11.6±0.01µs        ? ?/sec
fixed_size_binary/fsb16/list=4/match=50%                             1.00     11.6±0.01µs        ? ?/sec    1.01     11.7±0.05µs        ? ?/sec
fixed_size_binary/fsb16/list=64/match=0%                             1.00     13.0±0.01µs        ? ?/sec    1.03     13.4±0.03µs        ? ?/sec
fixed_size_binary/fsb16/list=64/match=0%/input=unaligned             1.00     15.1±0.09µs        ? ?/sec    1.00     15.0±0.01µs        ? ?/sec
fixed_size_binary/fsb16/list=64/match=50%                            1.05     26.3±1.04µs        ? ?/sec    1.00     25.0±0.28µs        ? ?/sec
fixed_size_binary/fsb16/list=64/match=50%/input=unaligned            1.10     26.0±0.43µs        ? ?/sec    1.00     23.7±0.25µs        ? ?/sec
fixed_size_binary/fsb2/list=64/match=0%                              1.00      5.3±0.01µs        ? ?/sec    1.00      5.3±0.00µs        ? ?/sec
fixed_size_binary/fsb2/list=64/match=50%                             1.00      5.3±0.01µs        ? ?/sec    1.00      5.3±0.00µs        ? ?/sec
interval_month_day_nano/small_list/list=4/match=0%                   1.00     14.6±0.01µs        ? ?/sec    1.00     14.6±0.01µs        ? ?/sec
interval_month_day_nano/small_list/list=4/match=50%                  1.00     20.8±0.07µs        ? ?/sec    1.01     21.0±0.14µs        ? ?/sec
narrow_integer/f16/list=256/match=0%                                 1.00      5.2±0.01µs        ? ?/sec    1.00      5.2±0.00µs        ? ?/sec
narrow_integer/f16/list=256/match=50%                                1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.00µs        ? ?/sec
narrow_integer/f16/list=4/match=0%                                   1.00      3.6±0.00µs        ? ?/sec    1.00      3.6±0.00µs        ? ?/sec
narrow_integer/f16/list=4/match=50%                                  1.00      3.7±0.01µs        ? ?/sec    1.00      3.6±0.00µs        ? ?/sec
narrow_integer/f16/list=64/match=0%                                  1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
narrow_integer/f16/list=64/match=50%                                 1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
narrow_integer/i16/list=256/match=0%                                 1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.00µs        ? ?/sec
narrow_integer/i16/list=256/match=50%                                1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.00µs        ? ?/sec
narrow_integer/i16/list=4/match=0%                                   1.00      3.6±0.00µs        ? ?/sec    1.00      3.6±0.00µs        ? ?/sec
narrow_integer/i16/list=4/match=50%                                  1.00      3.6±0.00µs        ? ?/sec    1.00      3.6±0.00µs        ? ?/sec
narrow_integer/i16/list=64/match=0%                                  1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.04µs        ? ?/sec
narrow_integer/i16/list=64/match=50%                                 1.00      5.2±0.00µs        ? ?/sec    1.00      5.2±0.01µs        ? ?/sec
narrow_integer/u8/list=16/match=0%                                   1.00      4.7±0.01µs        ? ?/sec    1.00      4.7±0.00µs        ? ?/sec
narrow_integer/u8/list=16/match=50%                                  1.00      4.7±0.01µs        ? ?/sec    1.00      4.6±0.00µs        ? ?/sec
narrow_integer/u8/list=4/match=0%                                    1.00      3.3±0.00µs        ? ?/sec    1.00      3.3±0.00µs        ? ?/sec
narrow_integer/u8/list=4/match=50%                                   1.00      3.3±0.00µs        ? ?/sec    1.00      3.3±0.00µs        ? ?/sec
nulls/narrow_integer/u8/list=16/match=50%/nulls=20%                  1.00      4.7±0.00µs        ? ?/sec    1.00      4.7±0.00µs        ? ?/sec
nulls/primitive/i32/large_list/list=64/match=50%/nulls=20%           1.33     25.8±0.14µs        ? ?/sec    1.00     19.4±0.24µs        ? ?/sec
nulls/primitive/i32/small_list/list=16/match=50%/nulls=20%           1.00      9.1±0.00µs        ? ?/sec    1.00      9.1±0.00µs        ? ?/sec
nulls/primitive/i32/small_list/list=16/match=50%/nulls=20%/NOT_IN    1.00      9.2±0.01µs        ? ?/sec    1.00      9.2±0.00µs        ? ?/sec
nulls/primitive/i32/small_list/list=16/match=50%/nulls=50%           1.00      9.1±0.00µs        ? ?/sec    1.00      9.1±0.00µs        ? ?/sec
nulls/utf8/long_24b/list=16/match=50%/nulls=20%                      1.00     68.8±0.34µs        ? ?/sec    1.04     71.3±0.32µs        ? ?/sec
nulls/utf8/short_8b/list=16/match=50%/nulls=20%                      1.00     59.1±0.33µs        ? ?/sec    1.04     61.7±0.54µs        ? ?/sec
nulls/utf8view/long_24b/list=16/match=50%/nulls=20%                  1.00     85.2±0.27µs        ? ?/sec    1.02     87.0±0.21µs        ? ?/sec
nulls/utf8view/short_8b/list=16/match=50%/nulls=20%                  1.08     41.1±0.15µs        ? ?/sec    1.00     38.0±0.44µs        ? ?/sec
nulls/utf8view/short_8b/list=16/match=50%/nulls=20%/NOT_IN           1.09     41.1±0.11µs        ? ?/sec    1.00     37.6±0.10µs        ? ?/sec
nulls/utf8view/short_8b/list=16/match=50%/nulls=50%                  1.03     29.4±0.13µs        ? ?/sec    1.00     28.6±0.07µs        ? ?/sec
primitive/decimal128/large_list/list=5/match=0%                      1.00     13.1±0.05µs        ? ?/sec    1.04     13.6±0.03µs        ? ?/sec
primitive/decimal128/large_list/list=5/match=50%                     1.08     25.5±0.28µs        ? ?/sec    1.00     23.6±0.32µs        ? ?/sec
primitive/decimal128/large_list/list=64/match=0%                     1.00     12.8±0.01µs        ? ?/sec    1.05     13.5±0.03µs        ? ?/sec
primitive/decimal128/large_list/list=64/match=50%                    1.02     21.3±0.23µs        ? ?/sec    1.00     20.9±0.15µs        ? ?/sec
primitive/i32/large_list/list=256/match=0%                           1.00     12.1±0.00µs        ? ?/sec    1.09     13.2±0.02µs        ? ?/sec
primitive/i32/large_list/list=256/match=50%                          1.23     23.4±0.33µs        ? ?/sec    1.00     19.0±0.14µs        ? ?/sec
primitive/i32/large_list/list=64/match=0%                            1.02     12.3±0.04µs        ? ?/sec    1.00     12.0±0.03µs        ? ?/sec
primitive/i32/large_list/list=64/match=50%                           1.13     25.0±0.29µs        ? ?/sec    1.00     22.1±0.41µs        ? ?/sec
primitive/i32/small_list/list=16/match=50%/NOT_IN                    1.00      9.1±0.01µs        ? ?/sec    1.00      9.1±0.01µs        ? ?/sec
primitive/i32/small_list/list=32/match=0%                            1.00     16.6±0.03µs        ? ?/sec    1.00     16.6±0.04µs        ? ?/sec
primitive/i32/small_list/list=32/match=50%                           1.00     16.5±0.01µs        ? ?/sec    1.00     16.5±0.01µs        ? ?/sec
primitive/i32/small_list/list=4/match=0%                             1.00      3.5±0.00µs        ? ?/sec    1.00      3.5±0.00µs        ? ?/sec
primitive/i32/small_list/list=4/match=50%                            1.00      3.5±0.01µs        ? ?/sec    1.00      3.5±0.01µs        ? ?/sec
primitive/i64/large_list/list=128/match=0%                           1.00     11.9±0.01µs        ? ?/sec    1.02     12.2±0.03µs        ? ?/sec
primitive/i64/large_list/list=128/match=50%                          1.00     20.6±0.12µs        ? ?/sec    1.12     23.1±0.16µs        ? ?/sec
primitive/i64/large_list/list=32/match=0%                            1.00     12.1±0.07µs        ? ?/sec    1.05     12.7±0.03µs        ? ?/sec
primitive/i64/large_list/list=32/match=50%                           1.30     23.5±0.21µs        ? ?/sec    1.00     18.0±0.14µs        ? ?/sec
primitive/i64/small_list/list=16/match=0%                            1.00     15.9±0.01µs        ? ?/sec    1.00     15.9±0.01µs        ? ?/sec
primitive/i64/small_list/list=16/match=50%                           1.00     15.9±0.01µs        ? ?/sec    1.00     15.9±0.01µs        ? ?/sec
primitive/i64/small_list/list=4/match=0%                             1.00      4.3±0.00µs        ? ?/sec    1.00      4.3±0.00µs        ? ?/sec
primitive/i64/small_list/list=4/match=50%                            1.00      4.3±0.00µs        ? ?/sec    1.00      4.3±0.00µs        ? ?/sec
timestamp_ns/large_list/list=32/match=0%                             1.00     17.2±0.03µs        ? ?/sec    1.02     17.4±0.02µs        ? ?/sec
timestamp_ns/large_list/list=32/match=50%                            1.00     29.0±0.49µs        ? ?/sec    1.04     30.2±0.21µs        ? ?/sec
timestamp_ns/small_list/list=16/match=0%                             1.00     15.9±0.01µs        ? ?/sec    1.00     15.9±0.01µs        ? ?/sec
timestamp_ns/small_list/list=16/match=50%                            1.00     15.9±0.01µs        ? ?/sec    1.00     15.9±0.01µs        ? ?/sec
timestamp_ns/small_list/list=4/match=0%                              1.00      4.3±0.01µs        ? ?/sec    1.00      4.3±0.01µs        ? ?/sec
timestamp_ns/small_list/list=4/match=50%                             1.00      4.3±0.00µs        ? ?/sec    1.00      4.3±0.00µs        ? ?/sec
utf8/long_24b/list=256/match=0%                                      1.02     35.8±0.10µs        ? ?/sec    1.00     35.0±0.03µs        ? ?/sec
utf8/long_24b/list=256/match=50%                                     1.00     70.8±0.61µs        ? ?/sec    1.01     71.5±0.22µs        ? ?/sec
utf8/long_24b/list=4/match=0%                                        1.00     34.6±0.03µs        ? ?/sec    1.02     35.3±0.04µs        ? ?/sec
utf8/long_24b/list=4/match=50%                                       1.00     71.3±0.45µs        ? ?/sec    1.03     73.3±0.29µs        ? ?/sec
utf8/long_24b/list=64/match=0%                                       1.00     34.2±0.03µs        ? ?/sec    1.01     34.5±0.03µs        ? ?/sec
utf8/long_24b/list=64/match=50%                                      1.00     70.4±0.24µs        ? ?/sec    1.02     72.0±0.50µs        ? ?/sec
utf8/mixed_len/list=16/match=0%                                      1.04     36.7±0.12µs        ? ?/sec    1.00     35.3±0.08µs        ? ?/sec
utf8/mixed_len/list=16/match=50%                                     1.00     97.3±0.49µs        ? ?/sec    1.01     97.8±0.54µs        ? ?/sec
utf8/mixed_len/list=64/match=0%                                      1.05     39.8±0.09µs        ? ?/sec    1.00     37.8±0.19µs        ? ?/sec
utf8/mixed_len/list=64/match=50%                                     1.00     97.9±1.05µs        ? ?/sec    1.06    103.4±1.02µs        ? ?/sec
utf8/shared_prefix/pfx=12/list=32/match=50%                          1.00     71.7±0.75µs        ? ?/sec    1.01     72.1±0.32µs        ? ?/sec
utf8/short_8b/list=16/match=50%/NOT_IN                               1.00     62.3±0.26µs        ? ?/sec    1.02     63.8±0.37µs        ? ?/sec
utf8/short_8b/list=256/match=0%                                      1.00     26.4±0.06µs        ? ?/sec    1.02     26.9±0.03µs        ? ?/sec
utf8/short_8b/list=256/match=50%                                     1.00     61.8±0.35µs        ? ?/sec    1.08     66.5±0.91µs        ? ?/sec
utf8/short_8b/list=4/match=0%                                        1.00     26.4±0.05µs        ? ?/sec    1.02     27.0±0.06µs        ? ?/sec
utf8/short_8b/list=4/match=50%                                       1.00     62.9±0.75µs        ? ?/sec    1.02     64.4±0.21µs        ? ?/sec
utf8/short_8b/list=64/match=0%                                       1.00     26.7±0.07µs        ? ?/sec    1.00     26.8±0.25µs        ? ?/sec
utf8/short_8b/list=64/match=50%                                      1.00     62.6±0.45µs        ? ?/sec    1.01     63.5±0.53µs        ? ?/sec
utf8view/len_12b/list=16/match=0%                                    1.00     17.8±0.02µs        ? ?/sec    1.05     18.6±0.02µs        ? ?/sec
utf8view/len_12b/list=16/match=50%                                   1.17     45.5±0.19µs        ? ?/sec    1.00     39.0±0.19µs        ? ?/sec
utf8view/len_12b/list=64/match=0%                                    1.00     17.9±0.03µs        ? ?/sec    1.04     18.6±0.03µs        ? ?/sec
utf8view/len_12b/list=64/match=50%                                   1.17     44.7±0.18µs        ? ?/sec    1.00     38.1±0.22µs        ? ?/sec
utf8view/long_24b/list=16/match=0%                                   1.01     41.3±0.12µs        ? ?/sec    1.00     40.9±0.12µs        ? ?/sec
utf8view/long_24b/list=16/match=50%                                  1.00     85.8±0.17µs        ? ?/sec    1.01     86.4±0.25µs        ? ?/sec
utf8view/long_24b/list=256/match=0%                                  1.00     41.4±0.07µs        ? ?/sec    1.00     41.3±0.06µs        ? ?/sec
utf8view/long_24b/list=256/match=50%                                 1.00     84.8±0.22µs        ? ?/sec    1.02     86.3±0.15µs        ? ?/sec
utf8view/long_24b/list=4/match=0%                                    1.00     40.0±0.09µs        ? ?/sec    1.02     40.8±0.17µs        ? ?/sec
utf8view/long_24b/list=4/match=50%                                   1.00     85.0±0.22µs        ? ?/sec    1.01     85.9±0.20µs        ? ?/sec
utf8view/long_24b/list=64/match=0%                                   1.02     41.5±0.20µs        ? ?/sec    1.00     40.5±0.06µs        ? ?/sec
utf8view/long_24b/list=64/match=50%                                  1.00     83.8±0.42µs        ? ?/sec    1.02     85.8±0.40µs        ? ?/sec
utf8view/mixed_len/list=16/match=0%                                  1.06     32.8±0.12µs        ? ?/sec    1.00     31.0±0.08µs        ? ?/sec
utf8view/mixed_len/list=16/match=50%                                 1.33     89.6±0.80µs        ? ?/sec    1.00     67.3±0.53µs        ? ?/sec
utf8view/mixed_len/list=64/match=0%                                  1.06     37.0±0.20µs        ? ?/sec    1.00     34.8±0.13µs        ? ?/sec
utf8view/mixed_len/list=64/match=50%                                 1.25    101.4±0.38µs        ? ?/sec    1.00     81.1±0.53µs        ? ?/sec
utf8view/shared_prefix/pfx=12/list=32/match=0%                       1.00     42.1±0.40µs        ? ?/sec    1.01     42.5±0.02µs        ? ?/sec
utf8view/shared_prefix/pfx=12/list=32/match=50%                      1.00     84.7±0.21µs        ? ?/sec    1.03     87.1±0.39µs        ? ?/sec
utf8view/shared_prefix/pfx=16/list=64/match=0%                       1.00     40.5±0.03µs        ? ?/sec    1.01     40.9±0.59µs        ? ?/sec
utf8view/shared_prefix/pfx=16/list=64/match=50%                      1.00     85.1±0.35µs        ? ?/sec    1.01     85.9±0.22µs        ? ?/sec
utf8view/shared_prefix/pfx=8/list=16/match=0%                        1.00     29.9±0.11µs        ? ?/sec    1.00     29.8±0.07µs        ? ?/sec
utf8view/shared_prefix/pfx=8/list=16/match=50%                       1.00     71.1±0.15µs        ? ?/sec    1.03     73.6±0.19µs        ? ?/sec
utf8view/short_8b/list=16/match=0%                                   1.00     17.8±0.03µs        ? ?/sec    1.01     18.0±0.02µs        ? ?/sec
utf8view/short_8b/list=16/match=50%                                  1.12     42.2±0.20µs        ? ?/sec    1.00     37.7±0.41µs        ? ?/sec
utf8view/short_8b/list=256/match=0%                                  1.00     17.9±0.04µs        ? ?/sec    1.02     18.3±0.03µs        ? ?/sec
utf8view/short_8b/list=256/match=50%                                 1.14     42.1±0.26µs        ? ?/sec    1.00     36.9±0.21µs        ? ?/sec
utf8view/short_8b/list=4/match=0%                                    1.00     17.9±0.02µs        ? ?/sec    1.04     18.7±0.03µs        ? ?/sec
utf8view/short_8b/list=4/match=50%                                   1.17     44.7±0.17µs        ? ?/sec    1.00     38.2±0.35µs        ? ?/sec
utf8view/short_8b/list=64/match=0%                                   1.00     18.1±0.04µs        ? ?/sec    1.02     18.5±0.04µs        ? ?/sec
utf8view/short_8b/list=64/match=50%                                  1.10     41.1±0.23µs        ? ?/sec    1.00     37.4±0.27µs        ? ?/sec

Resource Usage

in_list_strategy — base (merge-base)

Metric Value
Wall time 1560.3s
Peak memory 41.0 MiB
Avg memory 31.8 MiB
CPU user 1829.4s
CPU sys 1.6s
Peak spill 0 B

in_list_strategy — branch

Metric Value
Wall time 1570.3s
Peak memory 44.2 MiB
Avg memory 35.2 MiB
CPU user 1846.8s
CPU sys 1.6s
Peak spill 0 B

File an issue against this benchmark runner

@alamb

alamb commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

❤️

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

Labels

physical-expr Changes to the physical-expr crates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IN LIST: handle dictionary-encoded needles once (rather than in each filter type) to reduce code size

4 participants