AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Massive Performanceprobleme mit TJvImageComboBox
Thema durchsuchen
Ansicht
Themen-Optionen

Massive Performanceprobleme mit TJvImageComboBox

Ein Thema von BastiFantasti · begonnen am 5. Sep 2019 · letzter Beitrag vom 21. Sep 2019
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 9. Sep 2019, 08:14
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?
  Mit Zitat antworten Zitat
Schokohase
(Gast)

n/a Beiträge
 
#12

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 9. Sep 2019, 11:08
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;

Geändert von Schokohase ( 9. Sep 2019 um 11:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 9. Sep 2019, 11:17
@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
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie ( 9. Sep 2019 um 11:51 Uhr)
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#14

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 9. Sep 2019, 17:06
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
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 9. Sep 2019, 17:08
@Stevie kannst du deine Compilereinstellungen mal posten?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#16

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 10. Sep 2019, 11:25
{$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.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 10. Sep 2019, 11:34
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
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 10. Sep 2019, 11:47
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.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#19

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 10. Sep 2019, 12:08
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.
Angehängte Dateien
Dateityp: zip ComboBoxPerf.zip (1,05 MB, 10x aufgerufen)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (10. Sep 2019 um 12:14 Uhr)
  Mit Zitat antworten Zitat
BastiFantasti

Registriert seit: 5. Nov 2014
Ort: Baden Württemberg
133 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 10. Sep 2019, 12:59
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

Geändert von BastiFantasti (10. Sep 2019 um 13:19 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 14:57 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