mapbox / mapbox/mapbox-maps-flutter

addSource / updateGeoJSON slow performance on Android

Offen
#549 5 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Dart
Sterne
380
Forks
204
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When loading a 1 megabyte GeoJSON source to a map style and measure the time, I see a huge performance difference between Android and iOS.

```
var dateTimeNow = DateTime.now();

await mapboxMap?.style.addSource(
GeoJsonSource(
id: "my_source",
data: jsonEncode(myGeoJSON)
)
);

print(DateTime.now().difference(dateTimeNow).inMilliseconds);
```

Android:    **1500ms** (sometimes even more)
iOS:            **130ms**

I tested on Emulators as well as physical devices, the results are the same.

The same behaviour also occurs when using _source.updateGeoJSON(...)_.

When building a native Android app, working with large GeoJSON sources in Mapbox did not result in performance issues like this.

Here you can find the full sample project:
[flutter_mapbox.zip](https://github.com/mapbox/mapbox-maps-flutter/files/15348755/flutter_mapbox.zip)

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Reproduziere den Timing-Unterschied mit dem angehängten flutter_mapbox.zip-Beispiel, wobei du dich auf style.addSource mit einer 1 MB großen GeoJSON-Quelle und source.updateGeoJSON(...) konzentrierst. Vergleiche die Timings auf Android und iOS und untersuche den Android-Pfad; abgeschlossen ist die Arbeit, wenn große GeoJSON-Updates nicht mehr die gemeldete Android-Performance-Lücke zeigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
android, dart, flutter
Bereich
mobile
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.