Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#60

AW: VCL vs. FMX - Die Frage ist (vorerst) offiziell beantwortet

  Alt 13. Okt 2016, 17:01
Scrollt denn inzwischen eine Listbox mit 100.000 Einträgen flüssig
Scrollen ja. Man muss die Items aber erstmal reinbekommen.

Zitat:
Wie lange braucht das Binden/Befüllen einer solchen Listbox?
Für 100000 Strings brauchte meine PC (3.6GHz 100 Sekunden)

Das Ablöschen der Items (Clear) dauerte doppelt so lange.



Mit was ist die ListBox beschäftigt:

1. Performance-Bremse Nummer Eins sind die TComponent.Notification Aufrufe. Jedes bereits hinzugefügte Item muss natürlich über das Hinzufügen/Entfernen eines Siblings informiert werden, egal ob es damit was anfängt oder nicht. Das ist der Nachteil den man hat, wenn man auch Strings als TComponent behandelt.

2. Die Items.Add Methode liefert den Index des hinzugefügten Strings zurück. Da man sich aber entschieden hat, dass die internen DoAdd... Methoden diesen nicht rausrücken und man bei einem Add bei einer unsortierten List nicht auf die Idee kam, einfach "Count-1" zurückzugeben, wird am Schluss indirekt ein IndexOf gemacht, der dank Generic TList<TFmxObject> "ewig" braucht je mehr Elemente in der Liste sind.
  Mit Zitat antworten Zitat