Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add benchmarks for bounding WKB arrays #117

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

paleolimbot
Copy link
Contributor

@paleolimbot paleolimbot commented Feb 12, 2025

This is not an exhaustive search for the best option, just a check of the Parquet implementation to see where we're at.

Three situations with an identical coordinate count are considered:

  • A raw (aligned) double array. This should be the fastest/simplest (although isn't somehow).
  • A single linestring (where parsing overhead should be minimal)
  • All coordinates as their own WKB points. Here, parsing overhead dominates

I think the conclusion here is that the current Parquet implementation should be simplified to something more like what we have in geoarrow-c.

(The non-Parquet versions are probably optimistic because they don't check Z and M)

CPU Caches:
  L1 Data 64 KiB
  L1 Instruction 128 KiB
  L2 Unified 4096 KiB (x12)
Load Average: 1.84, 1.99, 1.88
-----------------------------------------------------------------------------------------------------
Benchmark                                           Time             CPU   Iterations UserCounters...
-----------------------------------------------------------------------------------------------------
BenchBoundDoubles                              911401 ns       910030 ns          764 items_per_second=1.09886G/s
BenchBoundDoublesWithEmptyCheck                702162 ns       700760 ns         1029 items_per_second=1.42702G/s
BenchBoundWKBLinestringUsingGeoArrowHpp        599640 ns       598843 ns         1160 items_per_second=1.66989G/s
BenchBoundWKBLinestringUsingParquetBounder    1295315 ns      1280583 ns          542 items_per_second=780.894M/s
BenchBoundWKBPointsUsingGeoArrowHpp           6901854 ns      6892653 ns          101 items_per_second=145.082M/s
BenchBoundWKBPointsUsingParquetBounder        8595789 ns      8583280 ns           82 items_per_second=116.506M/s
BenchBoundWKBPointsUsingUnalignedSequence     1270639 ns      1268723 ns          541 items_per_second=788.194M/s

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