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