Delphi-PRAXiS
Seite 2 von 5     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Massive Performanceprobleme mit TJvImageComboBox (https://www.delphipraxis.net/201871-massive-performanceprobleme-mit-tjvimagecombobox.html)

BastiFantasti 9. Sep 2019 07:14

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Ich kann die Ergebnisse von Pawel so auch bestätigen.
An meinem Rechner sollte es nicht liegen. Ist ein i7-6700

Der erste Durchlauf mit leerem Control liegt bei < 200ms und alle darauffolgenden fast 200ms drüber
Das Leeren bzw. Freigeben der Elemente dauert exorbitant lang.
Bei der Tabelle von Pawel sieht man sehr gut, dass das leeren stellenweise länger dauert als das neu befüllen...


@Stevie mit welcher Delphi Version hast du das getestet?

Schokohase 9. Sep 2019 10:08

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Das Entfernen und erneute Erzeugen von Instanzen ist immer schlecht für die Performance.

Warum verwendest du die bereits vorhandenen Einträge nicht wieder? Dann geht das auch wesentlich schneller.

Delphi-Quellcode:
procedure UpdateItems(const AItems: TJvImageItems; const AValues: TStrings);
var
  itemIndex: Integer;
  itemTemplate: TJvImageItem;
begin
  AItems.BeginUpdate();
  try
    // zuviele Einträge -> löschen vom Ende
    while AItems.Count > AValues.Count do
      AItems.Delete(AItems.Count-1);
    // zuwenig Einträge -> neue anfügen
    while AItems.Count < AValues.Count do
      AItems.Add;

    // Template erstellen
    itemTemplate := TJvImageItem.Create(AItems);
    try
      for itemIndex := 0 to AValues.Count -1 do
      begin
        // Template Werte setzen
        itemTemplate.Text := AValues[itemIndex];
       
        // Template zuweisen
        AItems[itemIndex].Assign(itemTemplate);
      end;
    finally
      FreeAndNil(itemTemplate);
    end;
  finally
    AItems.EndUpdate();
  end;
end;

Stevie 9. Sep 2019 10:17

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Zitat:

Zitat von BastiFantasti (Beitrag 1445304)
@Stevie mit welcher Delphi Version hast du das getestet?

Mit 10.1.2 - das ist unsere produktive Version.

Code aus Beitrag #10 mit 10.3.2 (sowohl jcl als auch jvcl neuster stand von github):

Code:
#1. done in 18 ms; clear: 0 ms; add: 3 ms; setText: 10 ms
#2. done in 31 ms; clear: 14 ms; add: 2 ms; setText: 9 ms
#3. done in 31 ms; clear: 13 ms; add: 2 ms; setText: 10 ms
#4. done in 30 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#5. done in 30 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#6. done in 30 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#7. done in 29 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#8. done in 30 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#9. done in 30 ms; clear: 13 ms; add: 2 ms; setText: 9 ms
#10. done in 29 ms; clear: 13 ms; add: 2 ms; setText: 9 ms

BastiFantasti 9. Sep 2019 16:06

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Hier die Ergebnisse von mir, Delphi 10.3.2 / x86 / jcl und jvcl werde ich mal von github aktualisieren...

Code:
#1. done in 411 ms; clear: 178 ms; add: 24 ms; setText: 174 ms
#2. done in 314 ms; clear: 161 ms; add: 16 ms; setText: 107 ms
#3. done in 406 ms; clear: 194 ms; add: 24 ms; setText: 162 ms
#4. done in 302 ms; clear: 157 ms; add: 15 ms; setText: 101 ms
#5. done in 411 ms; clear: 260 ms; add: 17 ms; setText: 109 ms
#6. done in 317 ms; clear: 163 ms; add: 19 ms; setText: 98 ms
#7. done in 386 ms; clear: 241 ms; add: 15 ms; setText: 98 ms
#8. done in 386 ms; clear: 163 ms; add: 19 ms; setText: 160 ms
#9. done in 315 ms; clear: 177 ms; add: 16 ms; setText: 98 ms
#10. done in 390 ms; clear: 163 ms; add: 21 ms; setText: 180 ms

BastiFantasti 9. Sep 2019 16:08

AW: Massive Performanceprobleme mit TJvImageComboBox
 
@Stevie kannst du deine Compilereinstellungen mal posten?

Stevie 10. Sep 2019 10:25

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Delphi-Quellcode:
{$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N-,O+,P+,Q-,R-,S-,T-,U-,V+,W-,X+,Y+,Z1}


Aber ich glaub ja eher, das liegt an irgendwelchen jcl/jvcl Einstellungen bei deren Installation, dass da evtl noch irgendwelche string Konvertierungen oder sonstwas laufen.

BastiFantasti 10. Sep 2019 10:34

AW: Massive Performanceprobleme mit TJvImageComboBox
 
ja das kann sein.

Ich hab gerade den letzten Stand von github geholt (JCL und JVCL)
die libs aktualisiert und bekomme immer noch gleiche Ergebnisse

ohne deine Compilerschalter zu testen.

Code:
#1. done in 134 ms; clear: 0 ms; add: 15 ms; setText: 95 ms
#2. done in 291 ms; clear: 155 ms; add: 16 ms; setText: 94 ms
#3. done in 378 ms; clear: 242 ms; add: 15 ms; setText: 95 ms
#4. done in 340 ms; clear: 162 ms; add: 17 ms; setText: 123 ms
#5. done in 345 ms; clear: 203 ms; add: 15 ms; setText: 99 ms
#6. done in 376 ms; clear: 157 ms; add: 19 ms; setText: 171 ms
#7. done in 283 ms; clear: 151 ms; add: 14 ms; setText: 92 ms
#8. done in 379 ms; clear: 185 ms; add: 20 ms; setText: 146 ms
#9. done in 295 ms; clear: 154 ms; add: 16 ms; setText: 101 ms
#10. done in 386 ms; clear: 247 ms; add: 16 ms; setText: 98 ms
Der Test folgt gleich noch

BastiFantasti 10. Sep 2019 10:47

AW: Massive Performanceprobleme mit TJvImageComboBox
 
so, den Test mit deinen Compilereinstellungen hab ich gemacht - leider ohne Änderung des Problems.
Somit wird es wohl an der Installationsart der JVCL Komponenten liegen.

Hast du da irgendwas spezielles ausgewählt oder abgewählt?
Ich hab es bei mir mit den Standardeinstellungen durchinstalliert.

Stevie 10. Sep 2019 11:08

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Liste der Anhänge anzeigen (Anzahl: 1)
Im Anhang mal die Einträge aus den ini Dateien, die neben den Installern erzeugt werden mit den Einstellungen und das Testprojekt, damit wir auch sicherstellen können, dass es nicht an etwas anderen liegt, wenn du damit auch schnelle Zeiten hinbekommst

P.S. Falls die eine oder andere Einstellung seltsam anmutet, das ist das, was ich zuletzt ausprobiert habe ums auch langsam zu bekommen, ohne Erfolg.

BastiFantasti 10. Sep 2019 11:59

AW: Massive Performanceprobleme mit TJvImageComboBox
 
Vielen Dank schon mal

ich hab deine EXE getestet, hier die Ergebnisse:

Code:
#1. done in 135 ms; clear: 0 ms; add: 14 ms; setText: 99 ms
#2. done in 333 ms; clear: 182 ms; add: 18 ms; setText: 109 ms
#3. done in 285 ms; clear: 154 ms; add: 14 ms; setText: 94 ms
#4. done in 324 ms; clear: 196 ms; add: 13 ms; setText: 91 ms
#5. done in 278 ms; clear: 147 ms; add: 14 ms; setText: 92 ms
#6. done in 332 ms; clear: 205 ms; add: 13 ms; setText: 90 ms
#7. done in 314 ms; clear: 166 ms; add: 15 ms; setText: 98 ms
#8. done in 303 ms; clear: 175 ms; add: 14 ms; setText: 90 ms
#9. done in 308 ms; clear: 143 ms; add: 17 ms; setText: 113 ms
#10. done in 303 ms; clear: 170 ms; add: 15 ms; setText: 93 ms
langsam fall ich vom Glauben ab...

Welches Windows verwendest du?

Ich Win 10 Pro x64 (Version 10.0.18362 Build 18362)
Prozessor Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz, 3408 MHz, 4 Kern(e), 8 logische(r) Prozessor(en)
Installierter physischer Speicher (RAM) 16,0 GB


Update:
Deine Exe läuft bei meinem Kollegen wunderbar mit 8-16ms ...

Es muss also ein Windows Problem sein


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:16 Uhr.
Seite 2 von 5     12 34     Letzte »    

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