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

Performance beim Log-Rendern auf PDAs

Silas

Geocacher
Hallo Forum,

auf meinem eigentlich ziemlich flotten PDA dauert das Rendern der Logs ewig. Ich habe ziemlich genau 25 Sekunden pro Logeintrag (!) gemessen, was bei den standardmäßigen fünf Logs pro Seite über zwei Minuten macht. Ich bin mir ziemlich sicher, dass das auf meinem alten, langsamreren PDA signifikant schneller ging. Leider habe ich den schon weiterverkauft, sodass ich das nicht mit Zahlen belegen kann. Ich vermute, dass das mit der Display-Auflösung zusammenhängt: Der neue hat mit WVGA gegenüber dem alten mit QVGA die fünffache Pixel-Anzahl, also müssen auch wesentlich größere Bilder gerendert werden. Kann das Verhalten jemand bestätigen, der einen VGA-PDA oder ähnliches nutzt?

Grüße, Silas
 

pfeffer

Geowizard
das ist ja krass! Auf dem QVGA, auf dem ich testen kann, dauert das erste Aufrufen der Logseite knapp 10 Sekunden. Weitere Aufrufe beim selben Cache dauern weniger als 1/2", d.h. praktisch sofort.
Neuer cache, wieder knapp 10". Erneute Auswahl eines Caches, von dem die Logs schonmal angezeigt wurden: ca. 6".

Deine Erklärung erscheint mir plausibel. Du könntest mal probieren, den für CW verfügbaren Speicher zu vergrößern. Dazu muss Du mit dem Jewel die jnf-Datei editieren und auf "Edit Commandline" einen anderen Wert bei "-Xmx 12M" (oder so) einstellen.

Gruß,
Pfeffer.
 
OP
S

Silas

Geocacher
Danke für eure Hinweise. Das Erhöhen des Speichers hilft leider nicht. Vielleicht baue ich die Tage mal was ein, um herauszufinden, was genau so lange dauert.
 

Harry1999

Geocacher
Ich habe auch ein VGA-PDA und habe das Problem! Deshalb hasse ich den Decode-Butten an dieser Stelle!!! Erst 2. Minuten warten bis der nutzbar ist, ist schon ziemlich...man lehrt sich in Demut.
 
OP
S

Silas

Geocacher
Engywuck schrieb:
Ich habe auch einen VGA-PDA, und ich habe keine Probleme beim Laden der Logs.

Gruß,
E.
Seltsam. Was nutzt du für eine Version? Eine "normale" oder hast du lokale Änderungen? Ich erinnere mich daran, dass hier mal darüber diskutiert wurde, ob man das Log-Rendern als Bild deaktivierbar machen sollte. Du hast sowas nicht zufällig bei dir eingebaut?

Ich werde die Ursache mal weiter untersuchen, aber gerade so ein Feature wäre vielleicht ein guter Workaround für neure PDAs mit VGA. Die sind ja auch in der Regel schneller, sodass das Umblättern ganz gut gehen sollte, wenn man die Anzahl der Logs auf einen pro Seite setzt. Dadurch sollte man -- auch dank der hohen Displayauflösung -- nur noch sehr selten scrollen müssen. Das Scroll-Problem ist ja die Haupt-Motivation fürs Bild-Rendering.

Gruß, Silas
 

Engywuck

Geowizard
Habe es gerade noch mal ausprobiert: 10 sek kommt ganz gut hin. Und ich verwende immer nur die normalen Builds.

Gruß,
E.
 
OP
S

Silas

Geocacher
Bin der Sache schon ein wenig näher. Das Problem verursacht die Zeile
Code:
logs.setHtml(dummy.toString());
(ca. 106 in HintLogPanel.java). Das interessante daran ist, dass hier noch gar nichts mit Bildern passiert. Komisch ist auch, dass der deutlich umfangreichere HTML-Code von Cache-Beschreibungen schnell dargestellt wird. Ich versuche jetzt herauszufinden, was diese Unterschiede hervorruft. Ob man setHtml() oder startHtml() und endHtml() aufruft, macht jedenfalls keinen Unterschied.

Gruß, Silas
 

MiK

Geoguru
Die Cachebeschreibung wird nicht als Bild gerendert. Das ist schon mal der Hauptunterschied. Sind VGA-PDAs nicht deswegen etwas schneller, damit sie trotz des größeren Displays noch bedienbar sind?
 
OP
S

Silas

Geocacher
Ja, der Unterschied ist mir natürlich bekannt. Was mich so stutzig macht, ist bloß, dass die von mir genannte Zeile, deren Ausführung die gesamte Zeit in Anspruch nimmt, _vor_ dem Erstellen des Bildes steht (vorausgesetzt natürlich, ich verstehe den Code richtig).

Natürlich brauchen PDAs mit großer Displayauflösung auch generell mehr Ressourcen für die Darstellung, aber mit der Ausnahme der Logs läuft der Cachewolf auf meinem Gerät wesentlich flüssiger als auf dem alten. Auch die Moving Map und jede andere Maske.
 
OP
S

Silas

Geocacher
Weiterhin bestärkt mich in meiner Annahme, dass das Bild eher nicht die Ursache ist, dass es super schnell geht (ca. 1 Sek/5 Logs), wenn ich statt des setHtml() setPlainText() aufrufe. Da wird anschließend ja auch das Bild erstellt und so viel kleiner als für Html ist es nicht.

Es ist mir nur ein Rätsel, warum das Html-Rendern für die Beschreibung keine Probleme macht.
 

MiK

Geoguru
Welcher Text wir denn jeweils genau zum HTML-Rendern übergeben? Ist der eine Text vielleicht in bestimmte HTML-Tags gefasst und der andere nicht?
 

Engywuck

Geowizard
Was ich hier beim Erstellen des HTML-Textes für die Logs gerade lese:
Code:
		for(int i = crntLogPosition; i<nLogs; i++){
			dummy.append(currCache.CacheLogs.getLog(i).toHtml());
			dummy.append("</br>");
			if(++counter >= logsPerPage) break;
		}
Muss es hier nicht <br> heissen statt </br> ? Vielleicht verwirrt das?
(Ich kanns nicht testen, bei mir läufts ja ;-) )

Gruß,
E.
 
OP
S

Silas

Geocacher
Ja den HTML Code wollte ich mir auch als nächstes genauer anschauen, es reicht ja schon ein Log mit nur einem Satz, um das Problem bei mir zu reproduzieren, sollte also nicht so viel Arbeit sein. Das </br> habe ich ganz übersehen und versuche es natürlich als erstes. Danke euch beiden.
 
OP
S

Silas

Geocacher
Die Ursache ist folgende: Ich habe auf meinem PDA standardmäßig eine Datenverbindung aktiv, für Mails und so. Wenn die aktiv ist, versucht der Log-Renderer scheinbar alle Bilder in den Logs aus dem Internet zu laden. Das dauert. Schaltet man die Datenverbdindung ab, gehts schnell. Was mir nicht ganz klar ist, warum ihn das auch langsam macht, wenn auf einer Seite lediglich Logs ohne Bilder mit absoluten Pfad-Angaben sind. Ist aber so.

Dagegen hilft es, die documentroot-Property zu setzen, sodass die Log-Bildchen aus dem lokalen Cachwolf-Ordner geladen werden. Dann können allerdings keine Bilder mit absoluten Pfaden aus dem Internet mehr angezeigt werden. Ich bin mir nicht so sicher, ob das vorher funktioniert hat, glaube aber nicht. Aber selbst wenn halte ich das für einen guten Deal im Tausch gegen die Geschwindigkeit. Zumal vermutlich die meisten auf dem PDA beim Cachen keine Internetverbindung offen haben.

Auf meinem Desktop (Jar/Linux) funktioniert das Anzeigen von Bildern aus dem Internet übrigens auch generell nicht. Falls das auf Windows-Desktops vorher ging und jetzt (rev 1716) nicht mehr, bitte melden, dann könnte man an der Stelle noch die Plattform unterscheiden.

Gruß, Silas
 

MiK

Geoguru
Ich glaube, die Bilder in den Logs gingen noch nie auf irgendeiner Plattform. Meiner Ansicht nach sind die auch überflüssig.
 
OP
S

Silas

Geocacher
Jo, ich finde sie auch nicht wichtig. Wollte nur nichts kaputt-repariert haben. Ist ja umso besser.
 
Oben