Einzelnen Beitrag anzeigen

Pawel Piotrowski

Registriert seit: 13. Aug 2003
9 Beiträge
 
#10

AW: Massive Performanceprobleme mit TJvImageComboBox

  Alt 6. Sep 2019, 17:25
Das ist sehr interessant. Ich wundere mich, wo der Unterschied liegt?
Bei mir ist es sogar noch langsamer als bei BastiFantasti .

ich habe einen i7 6700K @4GHz

Habe mal ein neues blanko Projekt erstellt, etwas vereinfacht.
Nur ein TButton, TMemo und natuerlich JvImageComboBox plaziert.
delphi Rio
Release build
JEDI VCL Library Version 3.50

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
  st, stClear, stAdd, stSetText: TStopWatch;
  x: Integer;
  j: Integer;
  item: TJvImageItem;
begin
  for x := 0 to 9 do
  begin
      st := TStopWatch.startNew;
    stAdd.Reset;
    stSetText.Reset;
    stClear.Reset;

    JvImageComboBox1.items.BeginUpdate;
    try
      stClear.start;
      JvImageComboBox1.items.clear;
      stClear.Stop;

      for j := 0 to 99 do
      begin
          stAdd.start;
        item := JvImageComboBox1.items.Add;
        stAdd.Stop;

        stSetText.start;
        item.Text := 'abcdefgh' + IntToStr(j);
        stSetText.Stop;
      end;

    finally
      JvImageComboBox1.items.EndUpdate;
    end;

    st.Stop;
    Memo1.Lines.Add(
      format(
      '#%d. done in %d ms; clear: %d ms; add: %d ms; setText: %d ms',
      [(x + 1),
      st.ElapsedMilliseconds,
      stClear.ElapsedMilliseconds,
      stAdd.ElapsedMilliseconds,
      stSetText.ElapsedMilliseconds]));
  end;
  
end;
Und so sehen meine Resultate aus:

Delphi-Quellcode:
#1. done in 367 ms; clear: 0 ms; add: 34 ms; setText: 274 ms
#2. done in 728 ms; clear: 420 ms; add: 28 ms; setText: 231 ms
#3. done in 697 ms; clear: 381 ms; add: 32 ms; setText: 234 ms
#4. done in 679 ms; clear: 367 ms; add: 29 ms; setText: 234 ms
#5. done in 719 ms; clear: 376 ms; add: 35 ms; setText: 259 ms
#6. done in 753 ms; clear: 390 ms; add: 39 ms; setText: 271 ms
#7. done in 779 ms; clear: 427 ms; add: 30 ms; setText: 255 ms
#8. done in 791 ms; clear: 375 ms; add: 36 ms; setText: 322 ms
#9. done in 728 ms; clear: 397 ms; add: 29 ms; setText: 227 ms
#10. done in 744 ms; clear: 391 ms; add: 33 ms; setText: 271 ms
Pawel Piotrowski
  Mit Zitat antworten Zitat