AGB  ·  Datenschutz  ·  Impressum  







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

FMX Listbox total lahm

Ein Thema von wurzelzwerg · begonnen am 26. Sep 2011 · letzter Beitrag vom 30. Sep 2011
Antwort Antwort
wurzelzwerg

Registriert seit: 19. Jun 2011
Ort: Ilmenau
111 Beiträge
 
Delphi XE5 Enterprise
 
#1

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 12:44
OK, hier mal das Miniprojekt.
Und die PC-Daten:
AMD 64X2 Dual
4200+
2,21 GHz
2 GB
Windows XP SP3
GraKa: RadeonX1800GTO
256MB

Wo kann man den Treiber auslesen? Ich seh nur ATI-Display-Driver.

Auf meinem MacBookPro hab ich dasselbe Problem, OSX und WindowsXP.
Häng bitte mal eine .exe von dir ran, vielleicht geht die ja.
Angehängte Dateien
Dateityp: rar LBTest.rar (1,99 MB, 8x aufgerufen)

Geändert von wurzelzwerg (27. Sep 2011 um 12:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 13:24
Es scheint exponentiell von der Anzahl der Elemente der Listbox abzuhängen. Versuch es mal mit Begin/Endupdate, ich habe jetzt dabei eine Geschwindigkeitssteigerung um das 250-fache gemessen :

Code:
Listbox alClient (600x400) mit 1000 Elementen = 5223 ms
ListBox alClient (600x400) mit 2000 Elementen = 28809 ms

ListBox alClient (600x400) mit 2000 Elementen Begin/Endupdate = 109 ms
ListBox alClient (600x400) mit 8000 Elementen Begin/Endupdate = 1704 ms
Delphi-Quellcode:
procedure TfrmMain.FormCreate(Sender: TObject);
var
  i : integer;
  dtStart : TDateTime;
begin
  dtStart := Now;
  ListBox1.BeginUpdate;
  for i := 0 to 7999 do
    ListBox1.Items.Add(Format('%8.8d', [i]));
  ShowMessage(Format('%d', [MilliSecondsBetween(Now, dtStart)]));
  ListBox1.EndUpdate;
end;
Ich habe aber nur 32bit runtime. Hast Du vielleicht 64 erstellt? Das kann ich bei mir nicht testen.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 13:35
Ich habe Deine Anwendung getestet und nach 5 Minuten mit 100% CPU gekillt. Bei mir kompiliert das selbe. Dann Begin/EndUpdate eingefügt. 3160 ms.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
wurzelzwerg

Registriert seit: 19. Jun 2011
Ort: Ilmenau
111 Beiträge
 
Delphi XE5 Enterprise
 
#4

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 13:49
Komisch. Was ist denn zu deinem ersten Test anders?

Mit Begin/Endupdate sind es jetzt 5219ms. Schon mal wesentlich besser. VCL: 1150ms
Das Scrollen in der Box ist aber auch keine Freude.

Geändert von wurzelzwerg (27. Sep 2011 um 14:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 14:03
Das Scrollen ist schon in qc. Der Unterschied zu heute nacht ist die Größe der Listbox. Die hatte ich einfach aus der Palett eingefügt und unverändert auf 100x100 gelassen.

Und hier sehen wir sehr schön den Unterschied zwischen dem bösen HEAVYWEIGHT:
Result := SendMessage(ListBox.Handle, LB_ADDSTRING, 0, Longint(PChar(S))); und dem tollen, neuen LIGHTWEIGHT:
Delphi-Quellcode:
Item := TListBoxItem.Create(FListBox);
try
  Item.Text := S;
  Result := FListBox.Count;
  FListBox.AddObject(Item);
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (27. Sep 2011 um 14:10 Uhr)
  Mit Zitat antworten Zitat
wurzelzwerg

Registriert seit: 19. Jun 2011
Ort: Ilmenau
111 Beiträge
 
Delphi XE5 Enterprise
 
#6

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 14:09
Hmm. Die Grösse macht bei mir keinen Unterschied.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 14:13
Und dann rate mal was TCustomListBox.Getcount macht
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#8

AW: FMX Listbox total lahm

  Alt 27. Sep 2011, 14:27
Macht es Sinn 8000 Einträge in einer Listbox anzuzeigen?
Wer soll das alles lesen?
Wie lange soll das Dauern?
Der arme User bekommt bestimmt Gicht in den Fingern vom Mausrad drehen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  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 12:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz