AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Firemonkey TListbox Performanceprobleme

Ein Thema von Peter666 · begonnen am 14. Mär 2014 · letzter Beitrag vom 15. Mär 2014
Antwort Antwort
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#1

Firemonkey TListbox Performanceprobleme

  Alt 14. Mär 2014, 12:41
Hi,

ich bin mir sicher das Problem tritt nicht nur bei mir auf, aber die Geschwindigkeit von TListbox unter Android ist im Vergleich zu TListView unterirdisch. Sobald ich eine Listbox auf dem Formular mit mindestens einem Eintrag erstelle geht die Performance in den Keller. Das ganze konnte ich nur unter Android beobachten, aber da ist das so massiv das es sich gar nicht lohnt auch nur im Ansatz eine Listbox zu verwenden. Ähnliches gilt für TSwitch.
Das es anders geht, sieht man bei Listview. Ich hab leider keinen Eintrag bei QC gefunden der darauf schließen lässt, das das Problem bekannt ist bzw. behoben werden kann. Ich sehe aber auf die schnelle auch nicht woran es liegt. Die Zeichenroutinen sind ja PaintTo in TControl und werden für andere Objekte ebenso benutzt. Es muss also irgendwo anders eine Performanceursache geben.
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firemonkey TListbox Performanceprobleme

  Alt 14. Mär 2014, 23:27
Stimmt, die Listview ist schneller. Aber geht es um Erstellung der Inhalte oder Anzeige? Beides hängt ja oft zusammem. Verwendest Du auch Listbox.items.beginupdate, vor der Änderung der
Inhalte bzw listbox.items.endupdate danach? Dies erbringt einen enormen Geschwindigkeitsvorteil (und gilt bei allen Firemonkey-Komponenten, wo es um die Anzeige geht).
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#3

AW: Firemonkey TListbox Performanceprobleme

  Alt 15. Mär 2014, 07:17
Die Listbox unter Firemonkey ist nur für wenige Objecte gedacht. Wenn Du mehrere hunderte oder tausende Objecte in einer Liste darstellen und auch laden möchtest, dann solltest Du immer auf die ListView zurückgreifen. Zudem hat die ListView noch den Vorteil, dass diese hier mein Einstellungsmöglichkeiten hat, gegenüber der TListBox.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#4

AW: Firemonkey TListbox Performanceprobleme

  Alt 15. Mär 2014, 08:13
Ich hab nur 10 Einträge drin und aktualisiere deren Details alle 1000ms. Auch wenn ich die Detailinfos nicht aktualisiere, dann kann es passieren dass die Applikation beim Scrollen auf meinem Nexus dazu führt das die "Applikation reagiert nicht"-Meldung kommt. Listview ist in dem Fall zum Glück eine Alternative, aber meine Settings habe ich in einer Listbox. Da sind 10 Einträge mit 2 Editfeldern und 2 Switches. Wobei ich die Switches in Checkboxen umwandeln muss bei Android. Die sind nämlich auch erstaunlich unperformant.
Schade das ich das Design erst auf IOS getestet habe und nun erst unter Android gegenchecke. Ich hoffe es wird noch etwas an der Performanceschraube gedreht, sonst schmeiße ich die Visualisierung über Bord und nutze die nativen Anzeigen von DPF. Da muss ich mich allerdings auch erst einarbeiten und der Gedanke dann für iOS und Android separate Formulare zu machen ist zwar nicht so schlimm, aber ich habe halt auch viele eigene Komponenten die ich selber erstellt habe (Gauges, Diagramme etc) und die zu portieren hab ich noch keinen Plan.

Ist vielleicht nicht so ganz in dem Thread passend, aber warum ist ein FillEllipse nicht wirklich eine Ellipse, sondern besteht unter iOS und Android aus einer hand voll Ecken? Kann man die Anzahl der verwendeten Polygone erhöhen?
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.479 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Firemonkey TListbox Performanceprobleme

  Alt 15. Mär 2014, 12:48
Also wie gesagt, die Listview ist schneller. Aber relevant wird das erst wenn man mehr als 100 Listbox-Einträge hat. Bis dahin sind ListboxItem-Einträge incl. Detail-Anzeige flüssig zu verwenden.

10 Einträge, wie von Dir beschrieben, sollte also überhaupt kein Problem sein.

Vielleicht liegt es auch an einer speziellen Konstruktion von Dir?

Wie hast Du die Listbox konkret aufgebaut? Sind die von Dir erwähnten Edit-Felder im ListboxItem drin, und die Switches ebenso?

Ohne genauere Infos ist es leider wie stochern im Nebel, am Besten wäre, Du könntest ein kleines Source-Code-Beispiel posten oder ein Mini-Projekt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz