... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Löschen sehr langsam
#1
Hallo,

ich habe von kurviger.de ein GPX exportiert, das hat knapp 37000 Positionen. Dann mit der doppelte Positionen löschen Funktion die Positionen mit 5 m Grenzwert ausgewählt und dann "Lösche markierte Positionen".

Das Öffnen der großen Datei und Markieren geht schnell (wenige Sekunden), aber das Löschen geht sehr langsam, hab's jetzt nicht gestoppt aber gefühlt 5 Minuten. Windows 10 i5-7500, 8 GB RAM. Die GPX Datei habe ich gezipt angehängt.

Ist das nur bei mir so, oder warum  ist das so langsam?

Danke im Voraus.

   


Attached Files
.zip   k.zip (Size: 415.94 KB / Downloads: 17)
Reply
#2
Das kann/muss ich leider bestätigen!

Aktuell habe ich eine gpx-Datei mit einem Track und 98.919 Positionen, sie ist ca. 19 MB groß. Die möchte ich (wie schon mindestens 20 Mal nach Wohnmobil-Reisen) mit Douglas-Peucker (10m) komprimieren - was im Prinzip auch funktioniert, das Markieren der Positionen geht recht flott. Auch das Löschen der markierten funktioniert noch, dauert aber schon mehrere Minuten, übrig bleiben 11.118 (reproduzierbar), was auch angezeigt wird - aber der Dialog 'lösche Positionen' bleibt stehen, der Mauszeiger kringelt darüber und er lässt sich nicht schließen - Java belegt weiterhin einen CPU-Kern komplett - so dass man annehmen muss, es ist abgestürzt und dreht sich im Kreis!

Aber, nach vielleicht 20 Minuten wird es doch noch fertig und wieder bedienbar! Auf einem i7-3770K, 3,8 GHz und 16 GB RAM, Java 8 231 64 bit, Win 10 1903. Getestet habe ich es auch wie in den FAQs beschrieben mit 2 GB Speicher und der RouteConverterWindowsPrerelease.jar, was leider nicht schneller ist.

Was mich wundert: das ging früher wesentlich schneller! Ich habe auch schon eine ältere Version vom RouteConverter probiert, ohne Erfolg , aber nicht systematisch getestet - vermutlich liegt es dann an Java? Welche andere/neuere Java-Version könnte ich testen?

Grüße, Ralf
Reply
#3
Die Zeiten habe ich jetzt nochmal von Hand gestoppt:

Datei mit 98.919 Positionen öffnen und Track anzeigen: 10 s
87.731 redundante Positionen mit Douglas-Peucker markieren: 19 s
87.731 markierte Positionen löschen (bis Markierung verschwunden): 4:39 min
Dialog 'Lösche Positionen' schließen (Klick auf Schließkreuz wird offenbar registriert!): ca. 36 min

Laut Process Explorer verbraucht der RouteConverter v.2.26 dabei 41:43 min CPU-Zeit!
Reply
#4
Zum Testen habe ich mal einen alten Track hervor geholt, den ich im letzten Jahr mit RC ohne Auffälligkeiten bearbeiten konnte: Er hat 211.621 Positionen, davon werden nach D-P 199.249 redundante markiert in 1:20 min, das Löschen der markierten dauert dann aber 32:13 min.

Der Zeitaufwand ist also absolut nicht proportional zur Anzahl, daher habe ich auf ein Schließen des Dialogs nicht gewartet... Wie schon gesagt bearbeite ich seit Jahren meine Tracks auf diese Weise mit dem RC, das hätte ich niemals begonnen, wenn es derart zeitaufwändig gewesen wäre!

Grüße, Ralf
Reply
#5
(28.10.2019, 11:40)carmen.vvl Wrote: vermutlich liegt es dann an Java? Welche andere/neuere Java-Version könnte ich testen?

Grüße, Ralf

Hallo Ralf,

vielleicht hilft eine ältere Java-Version: bei läuft noch alles auf Java 8u201, das Update auf 211 hatte ich wieder rückgängig gemacht, weil meine Banking-Software damit nicht gelaufen ist. 231 habe ich noch nicht getestet...
Grüße
Hans

Reply
#6
Hallo zusammen,

das Problem ist, dass die Event-Verarbeitung von Java Swing für die UI-Widgets überhaupt nicht gut mit großen Event-Mengen klar kommt, die entstehen, wenn man viele Positionen löscht.

Ich habe in der Vergangenheit viel Zeit investiert, um wirklich große Klimmzüge zu machen, damit das performanter wird. Da habe ich so Faktor 1000-10000 herausholen können, indem ich Events ausgeschaltet, zusammengefaßt, umsortiert usw. habe.

Leider ist das ganze ziemlich zerbrechlich. Ich schaue mir das gerne an, wenn ich nächste Woche etwas Zeit habe.
--
Christian
Reply
#7
Kurzes Update der Zeiten für die k.zip auf meine MacBook Pro mit 2,5 GHz intel i7:

Datei öffnen und Track anzeigen: 1s
17851 redundante Positionen mit Douglas-Peucker markieren: 3 s
Markierte Positionen löschen (bis Markierung verschwunden): 480 s
Dialog 'Lösche Positionen' schließen: ca. 3 min

Und ich habe schon eine Stelle gefunden - ironischerweise eine andere Optimierung für die berechneten Spalten - die die Zeit für "Markierte Positionen löschen" auf 1 s drückt.
--
Christian
Reply
#8
Danke für die Antworten!

Eine alte Java-Version kann wohl kaum die Lösung sein und in der Tat liegt das Problem wohl nur beim Löschen, egal womit die Positionen markiert wurden. Für meine aktuelle Anwendung habe ich einen Workaround gefunden, ich mache Douglas-Peucker mit GpsPrune, was zwar mit dem 'Span-Faktor' wenig durchschaubar ist, aber (mit derselben Datei, demselben Java) ohne merkbare Verzögerung praktisch 'sofort' passiert ist.

Meine Datei kann ich auf Wunsch auch gerne zur Verfügung stellen, nur nicht öffentlich im Forum.

Grüße, Ralf
Reply
#9
An der Java Version liegt es nicht.
--
Christian
Reply
#10
(29.10.2019, 22:18)routeconverter Wrote: Und ich habe schon eine Stelle gefunden - ironischerweise eine andere Optimierung für die berechneten Spalten - die die Zeit für "Markierte Positionen löschen" auf 1 s drückt.

Wow! Das ist ja mal eine richtige Verbesserung.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)