Skip to content

Lookup functions have fields parameter to speed up decoding#7

Merged
marselester merged 1 commit into
mainfrom
lookup-fields
Feb 22, 2026
Merged

Lookup functions have fields parameter to speed up decoding#7
marselester merged 1 commit into
mainfrom
lookup-fields

Conversation

@marselester

@marselester marselester commented Feb 22, 2026

Copy link
Copy Markdown
Owner

The fields parameter controls which fields to decode (the remaining ones will be empty). If we limit decoding to city field, we can get ~83% faster lookups on 1M sample (tested on M2 Pro):

  • all fields ~441K lookups/sec median
  • only city ~808K lookups/sec median
$ for i in $(seq 1 10); do
    zig build benchmark_lookup -- GeoLite2-City.mmdb 1000000 \
      2>&1 | grep 'Lookups Per Second'
  done

  echo '---'

  for i in $(seq 1 10); do
    zig build benchmark_lookup -- GeoLite2-City.mmdb 1000000 city \
      2>&1 | grep 'Lookups Per Second'
  done

Lookups Per Second: 435031
Lookups Per Second: 448831
Lookups Per Second: 424320
Lookups Per Second: 450519
Lookups Per Second: 453749
Lookups Per Second: 432921
Lookups Per Second: 456187
Lookups Per Second: 428405
Lookups Per Second: 450528
Lookups Per Second: 424362
---
Lookups Per Second: 762510
Lookups Per Second: 810526
Lookups Per Second: 796118
Lookups Per Second: 819167
Lookups Per Second: 768519
Lookups Per Second: 812188
Lookups Per Second: 807066
Lookups Per Second: 729973
Lookups Per Second: 824185
Lookups Per Second: 809390

@marselester
marselester merged commit ef0b0c7 into main Feb 22, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant