maplibre/maplibre-tile-spec

Improve Java decoding benchmark

springmeyer opened this issue · 1 comments

Context

The Java decoding benchmark compares the speed of MLT decoding against two different libraries implementing https://github.com/mapbox/vector-tile-spec:

Problem

Both vector tile libraries are doing extra work that is not representative of what Maplibre needs.

Maplibre needs:

  • "Lightweight layers": decoded layers that store offsets to features and only decode features when accessed by layer.feature(idx).
  • "Lightweight features": decoded features containing just an id, extent, and properties only
  • Then, as needed, Maplibre will call a function on those features called feature.loadGeometry() to on-demand, fetch a two-dimensional Array<Array<Point>> representation of geometries.

Rather what the Java vector tile libraries do are:

ElectronicChartCentre/java-vector-tile

sebasbaumh/mapbox-vector-tile-java

Solution

We need to correct the Java benchmarks to compare against MVT decoding that is representative of what Maplibre expects.

MVT decoding that is representative of what Maplibre expects.

@mactrem here is a library in java that can be used to compare against: https://github.com/springmeyer/vector-tile-java. Let me know if you have any questions.