• Willkommen im Geoclub - dem größten deutschsprachigen Geocaching-Forum. Registriere dich kostenlos, um alle Inhalte zu sehen und neue Beiträge zu erstellen.

Android CB => GPX Import

marsipulami0815

Geocacher
Longri schrieb:
Ich habe jetzt das schreiben in die DB optimiert, es dauert aber immer noch unerträglich lange.

Das Problem liegt bei SQLite.

Das heißt aber, das wir das DB System umstellen müssen zB. nach DB4o.

Wobei im ersten Schritt WinCachebox erweitert werden müsste.

Ich kenne mich aber mit DBs nicht aus. Wink nach Bayern und ins Saarland.

Ich werde mir jetzt den GSAK Parser vornehmen!

Moin,
ein schneller GPX import ist sicherlich schön und für den Entwickler ist das sicherlich eine Herausforderung, das zu optimieren. Auf der anderen Seite ist aber "unerträglich lange" auch eher ein relativer Begriff und subjektiv gesehen. Wie auch schon bemerkt, geht das ja mit dem WM Cachebox auch nicht wirklich schnell, und mit WinCachebox gibt es ja das Werkzeug, um sich große Datenbanken vorzubereiten und dann auf das mobile Gerät zu kopieren. Ich für meinen Teil würde höchstens mal ein oder zwei Caches im Feld importieren - wenn überhaupt. Da durch e-Mail Benachrichtigung und der geplanten Möglichkeit, jetzt auch Caches manuell in die DB einzugeben (funktioniert übrigens noch nicht, wie ich grade feststelle - CB hängt), wäre dies meine persönliche Vorgehensweise im Feld. Da ich auch nicht weiß, welchen Aufwand es bedeutet, eine neue/andere DB zu benutzen, stellt sich mir die Frage: Lohnt sich der Aufwand dafür (jetzt)?

just my two cents

VG aus dem Siegerland
Marcus
 

GeoSilverio

Geowizard
Ja, im Prinzip seh ich das auch so.
Man kann nochmal bisschen schauen, warum es hardwareabhängig mal länger dauert oder schneller geht. Und sicher auch nochmal schauen, ob da auf den ersten Blick ein bisschen was "angedüst" werden kann.
Aber sonst werd ich das ohnehin immer mit WinCachebox machen, oder über die API dann eben.
 

marsipulami0815

Geocacher
Noch 'ne Info bzw. Vergleich zwischen SDF und SQlite (bei WinCB):
Habe heute Vormittag die wöchentlichen HomZone PQ's mit WinCachebox importiert und anschließend die auf meinem alten WM5 Gerät existierende aktualisiert. Dies hat ca. (nicht gemessen) 15 Minuten gedauert (mit Bilder update, gcvote usw.). Anschliesend habe ich den Export in SQlite (DB3) gestartet. Das lauft jetzt schon seit ungefähr 2 Stunden und ist erst zu 2/3 fertig ...
Das ganze läuft auf einem Centrino Dual Core Laptop in einer virtuellen XP Maschine auf SuSE 11.3
Offensichtlich gibt es schon Performance-Unterschiede - auch bei der WCB ...
VG Marcus
 

Toette

Geomaster
Ich denke auch, dass der Import auf dem Smartphone nicht sooo dringlich ist.

Zunächst sollte erstmal eine zwei offizielle Alpha an den Start kommen.
Dazu wünsche ich mir dann eine Liste mit den Dingen, die volle Funktionalität haben sollten.
Die können wir dann gemeinsam auf Herz und Nieren testen und auf diesem soliden Fundament weiterbauen.

Ich tu mich derzeit mit Bugreports ziemlich schwer, weil ich mir nie sicher bin, ob ich einen Bug oder eine bekannte Baustelle aufgetan habe (meine Bewunderung an die Devs, dass die da die Übersicht behalten ;) )
 

GeoSilverio

Geowizard
marsipulami0815 schrieb:
Anschliesend habe ich den Export in SQlite (DB3) gestartet. Das lauft jetzt schon seit ungefähr 2 Stunden und ist erst zu 2/3 fertig ...
Meinst du damit den eigentlich Export der Caches in eine sqlite-Datenbank? Oder wird eine bestehende sqlite-DB synchronisiert?
Ich nutze immer nur den Weg, aus Wincachebox einfach die bestehenden Caches als db3 zu exportieren, also in eine neue Datei. Das geht jedenfalls flott. 6500 Caches in etwa einer Minute oder sowas... (Allerdings ohne Bilder und Maps, das brauch ich nicht)
 

marsipulami0815

Geocacher
Silverio schrieb:
marsipulami0815 schrieb:
Anschliesend habe ich den Export in SQlite (DB3) gestartet. Das lauft jetzt schon seit ungefähr 2 Stunden und ist erst zu 2/3 fertig ...
Meinst du damit den eigentlich Export der Caches in eine sqlite-Datenbank? Oder wird eine bestehende sqlite-DB synchronisiert?
Ich nutze immer nur den Weg, aus Wincachebox einfach die bestehenden Caches als db3 zu exportieren, also in eine neue Datei. Das geht jedenfalls flott. 6500 Caches in etwa einer Minute oder sowas... (Allerdings ohne Bilder und Maps, das brauch ich nicht)
Ich meine tatsächlich "update" einer bestehenden - das Neuerstellen geht i. d. R. schneller, aber auch dort ist ein Unterschied zwischen SDF und SQlite vorhanden.
 

Ging-Buh

Geowizard
Longri schrieb:
Ich habe jetzt das schreiben in die DB optimiert, es dauert aber immer noch unerträglich lange.

Das Problem liegt bei SQLite.

Das heißt aber, das wir das DB System umstellen müssen zB. nach DB4o.

Wobei im ersten Schritt WinCachebox erweitert werden müsste.

Ich kenne mich aber mit DBs nicht aus. Wink nach Bayern und ins Saarland.
Hallo Andre,

Wink zurück von Bayern nach Berlin :hallo: .

Hab den Import mit einer PQ mit 82 Caches getestet und nach ca. 10 min abgebrochen. Anhand dem Fortschrittsbalken hätte es vermutlich Stunden gebraucht. Ist so definitiv nicht verwendbar...

Das ist aber kein Grund gleich die Flinte ins Korn zu werfen und die DB-Engine zu wechseln. Ich denke, nichts besseres würden wir nicht finden.

Die SQLite DB Engine von Android ist aus meiner Sicht gut, wenn nicht sogar sehr gut und Cachebox für Android braucht auf keinen Fall einen Wechsel der Engine.
Die Ursache dieses Problem ist ganz einfach der, dass jeder Schreibzugriff auf die DB eine gewisse Zeit braucht (auf meinem Gerät sind dies ca. 2-3 sec, die z.B. auch vergehen, wenn ich einen Waypoint anlege oder ändere, Notes oder den Solver-Text ändere...).

Zur Behebung dieses Geschwindigkeitsproblems heißt es einfach nur die Anzahl der Schreibzugriffe beim Import (im Idealfall auf 1) zu verringern. Und das Stichwort dafür heißt Transaktion.

Einfach vor dem Import eine Transaktion starten, dann die Caches wie gewohnt importieren und anschließend wenn alles erfolgreich war die Transaktion beenden. Während eine Transaktion gestartet ist werden alle Änderungen dieser DB nicht in die Datei geschrieben sondern im Arbeitsspeicher gehalten. Erst beim beenden der Transaktion wird die DB-Datei tatsächlich geändert.

Bei mir ist jetzt mit dem Einsatz einer Transaktion die Dauer des Imports einer PQ mit 82 Caches von keine Ahnung wie viele Stunden auf ca. 23 Sekunden!!! verkürzt worden...

Ich denke, damit sollte das Thema Wechsel der DB-Engine erstmal auf Eis gelegt werden können :D .
 

GeoSilverio

Geowizard
Ja, das ist ja schon mal was. Jeder Schreibzugriff auf die SD-Karte ist natürlich elendiglich langsam im Vergleich zum Hauptspeicher. Und dann kommt ja noch der Datenbank-Overhead dazu. Also Db öffnen, sperren etc...
Eine Sache gibts evtl. zu bedenken: Irgendwann geht der Speicher aus. Also wäre evtl. nach 1000 Caches (oder wieviel auch immer), doch ein commit fällig?
 

peter51d

Geocacher
Da habt ih ja jetzt beim GPX import den Warp Antrieb zugeschaltet.
Longris Test GPX,
Leere DB,
HTC HD2 SD Android 2.2
ImportZeit :40sec!!!! :shocked:
Zum Vergleich:
Mit der ´Rev 414 hat es 757 sec gedauert.
Ich glaube, da kann auch die Win Mob Version nicht mehr mit.
 

GeoSilverio

Geowizard
Einziger Nachteil der Transaktions-Methode ist höchstens, dass bei Absturz des Programms keine Änderung erfolgt ist...
Willst du also mal 3000 Caches importieren und bei etwa 2700 Caches stürzt Cachebox ab, sind eben 0 Caches importiert... :D
Aber ich denke das ist zu vernachlässigen.
 
OP
Longri

Longri

Geoguru
Danke Hubert!

Ich sage ja ich habe keine Ahnung von DB´s.

Ich habe eben nochmal meine Test GPX mit deiner Änderung Importiert und siehe da es waren nur noch 38,3 sec statt der UNENDLICH.

Damit kann ich sehr gut leben und wir brauchen kein DB-wechsel.

Gruß Andre

PS. Wer die Import Zeit wissen möchte muss jetzt nach einem Import in die Debug.txt schauen.
Ich habe sie, statt der Fertig Meldung, dort hinein schreiben lassen.

PSS. Ich versuche jetzt schon seit 1h diesen Post abzuschicken, ich hasse UMTS auf einem Sonntag wenn alle die gleiche Idee haben. ONLINE
 

GeoSilverio

Geowizard
Ich glaube nicht, beim Erstimport ist ja auch WM-Cachebox recht flott, gerade bei 500 Caches...
Bei einem Update wirds dann schon von alleine wieder langsam ;)
 

LosScherers

Geocacher
Ich hab mir heute aus dem SVN-Trunk CB kompiliert und auf den Droiden gepackt.
Wenn ich den GPX-Import starte gibts nen FC.

Erwartet er ein bestimmtes File oder ist sonstwas karpott?

Den Rest den ich sehe macht mir Hoffnung, scheint aber noch etwas Weg zu gehen zu sein. ;)
 
OP
Longri

Longri

Geoguru
Was meinst Du mit FC ? Force Close?

Dann würde uns ein LogCat Auszug weiter helfen.

Der Import ist eine der Aktuellen Baustellen.
 
Oben