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

(Stress) TILEJSON testset maken BAG panden + bouwjaar + verblijfsobjecten + energielabel in test collectie #24

Closed
eoudejans opened this issue Jun 26, 2024 · 18 comments

Comments

@eoudejans
Copy link
Contributor

No description provided.

@MaartenHilferink
Copy link

image

@MaartenHilferink
Copy link

In https://dh.wzwkaart.nl/app/map/3 blijft memory rond de 50 MB.

@eoudejans
Copy link
Contributor Author

@eoudejans
Copy link
Contributor Author

eoudejans commented Jun 26, 2024

Instanties van JSArrayBufferData nemen 92% van geheugen in beslag.
image

@baasgeo
Copy link
Collaborator

baasgeo commented Jun 26, 2024

Volgens mij is dit deels hetzelfde probleem als #16: MapGallery maakt per vector tile source een nieuwe source aan, dit verklaart de toename van het geheugen gebruik. Dit vraagt een correctie aan de applicatie.

Daarnaast kan ik me voorstellen dat raster tiles (voorgerenderde png's) uiteindelijk minder geheugen vragen dan vector tiles.

@MaartenHilferink
Copy link

MaartenHilferink commented Jun 27, 2024

We hebben onderzocht of meerdere layers met dezelfde geometrie dit probleem veroorzaakten, maar die hypothese moesten we verwerpen aangezien ook bij 2 kaartlagen met verschillende geometrie het geheugen al onverklaarbaar hoog is. Zie bijvoorbeeld: https://kaartviewer.asa2024.nl/app/map/main/101/info?center=5.831843573965216;51.94794923420369&zoom=8&layerIds=213;207;110
Ik denk dat GeoJSON / vector tiles uiteindelijk efficiënter in geheugengebruik zouden moeten zijn dan raster data, maar het lijkt er op (hypothese 2) dat de garbage collector of een reusable blob cache genaamd JSArrayBufferData ooit is ontwikkeld voor fixed size png-data en nu is hergebruikt voor variable sized vector tile data hetgeen retentie van bijna alle memory allocaties veroorzaakt. Of, een andere oorzaak wat wellicht enkel nadere diagnose en fixen behoeft, of herontwikkeling van libre-maps.

Ik stel voor straks even te overleggen om fallback opties te bespreken en wanneer we daar dan een knoop over moeten door hakken.

  • implementatie met raster tiles conform wzwkaarviewer
  • alleen data tonen na flink inzoomen (schaal: enkele gemeentes of groter), en voor de overviews de raster oplossing
  • beter simplifyen geometrieen.
  • Martin tile server

Zie ook https://github.com/orgs/ObjectVision/projects/16

@baasgeo
Copy link
Collaborator

baasgeo commented Jun 27, 2024

Zou het misschien aan de tiles zelf kunnen liggen?

Ter vergelijk heb ik twee kaartlagen uit de Martin tile server toegevoegd, Wijken 2022 TEST en Buurten 2022 TEST.

Wanneer beide kaartlagen zijn toegevoegd, komt het geheugengebruik uit op 133 MB, dat lijkt me acceptabel.

image

@MaartenHilferink
Copy link

Hoe groot was de CBS buurtkaart .shp en gerelateerde vector tiles op de Martin tile server ?

Wellicht was daar al geometry gesimplified, wat we bij ASA2024 ook nog wel verder willen doen, maar dan blijft er een (te) grote factor tussen brondata en geheugengebruik hetgeen aannemelijk maakt dat het datamodel niet past en/of de caching / garbage collection ergens op fout loopt.

Bij ASA2024 was Buurt.shp ongeveer 80 MB ?), in verctor tiles: XXXX (@eoudejans ?); resultaat in viewer zonder gaspijpen: 500 MB, en wellicht oplopend.

@baasgeo
Copy link
Collaborator

baasgeo commented Jun 27, 2024

Dit zijn de standaard CBS shapes (geometrie en ca. 40 velden met data), dat zal ook rond de 80 MB liggen. Het is rechtsreeks in postgis gezet, zonder conversie of simplificatie. Martin server doet een realtime conversie via de postgis functies ST_AsMVTGeom en ST_AsMVT. Even bellen?

@MaartenHilferink
Copy link

Bij alleen OSM achtergrondlaag en uitzoomen zijn de volgende JSArrayBufferData geregistreerd:
image

@MaartenHilferink
Copy link

image

@MaartenHilferink
Copy link

image

@MaartenHilferink
Copy link

Hee, probleem lijkt ineens opgelost:
image

@MaartenHilferink
Copy link

MaartenHilferink commented Jun 27, 2024

BTW, op welk schaalniveau wordt er voldoende gesimplified? 1e plaatje is OK, 2e zou als 1e moeten zijn, zelfs na enorm inzoomen liever de eerste gesimplifyde versie dan een gecrashde telefoon.

image
image

image

@MaartenHilferink
Copy link

Maar op dit zoom-niveau (kennelijk zonder simpliciatie als ik naar de Friese kust scroll):

image

@MaartenHilferink
Copy link

Ter vergelijking: 3d tiles in Google Maps:
image

@eoudejans
Copy link
Contributor Author

eoudejans commented Jul 1, 2024

Zou het misschien aan de tiles zelf kunnen liggen?

@baasgeo Mogelijk gerelateerd, voor Mapbox gl is enige tijd terug een bug opgelost mbt pbf lezen met string velden >12 bytes en veel memory vasthouden: mapbox/pbf#109. Dit is natuurlijk wel voor de fork / ontstaan van Maplibre gebeurt, dus deze fix zou meegekomen moeten zijn.

eoudejans added a commit that referenced this issue Jul 1, 2024
…ic overflow and thereby incorrect simplification results (missing centroid areas).
@MaartenHilferink
Copy link

image

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

No branches or pull requests

3 participants