Bingo! c'est effectivement bien plus simple et même un peu plus rapide :
RichEdit1.Assign Standard : mis 35s 180 ms RichEdit1.AddStrings Standard : mis 35s 250 ms AssignMaison(SLSource,RichEdit1) : mis 1s 320 ms AssignMaisonCirec (FileName,RichEdit1) : mis 1s 290 ms facteur de gain de vitesse AssignMaisonCirec = 35250/1290 = 27,3 (avec Intel Core i7-2700K à 3,5 GHz)
J'ai l'impression que RichEdit1.Assign(TStringList) Standard et AddStrings() Standard sont des usines à gaz qui perdent leur temps à faire des trucs inutiles en particulier si la StringList ne contient aucun objet.
Et je parie que cette lourdeur héritée de Delphi 1 perdure dans les versions plus récentes telles que les XE...
Cordialement et à +.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 10 janv. 2016 à 16:59
Salut et Bonne Année !!
c'est pas mal ... bien vu
mais je pense qu'il y avait encore plus simple :
...
for i := 1 to 10 do begin
RichEdit1.Lines.BeginUpdate;
RichEdit1.Clear;
RichEdit1.Text := SLSource.Text;
RichEdit1.Lines.EndUpdate;
end;
...
RichEdit1.Assign Standard : mis 1m 24s 453 ms
AssignMaison(SLSource,RichEdit1) : mis 3s 594 ms
AssignMaisonCirec RichEdit1.Text := SLSource.Text : mis 3s 469 ms
11 janv. 2016 à 10:38
Bingo! c'est effectivement bien plus simple et même un peu plus rapide :
J'ai l'impression que RichEdit1.Assign(TStringList) Standard et AddStrings() Standard sont des usines à gaz qui perdent leur temps à faire des trucs inutiles en particulier si la StringList ne contient aucun objet.
Et je parie que cette lourdeur héritée de Delphi 1 perdure dans les versions plus récentes telles que les XE...
Cordialement et à +.
10 janv. 2016 à 16:59
c'est pas mal ... bien vu
mais je pense qu'il y avait encore plus simple :
RichEdit1.Assign Standard : mis 1m 24s 453 ms
AssignMaison(SLSource,RichEdit1) : mis 3s 594 ms
AssignMaisonCirec RichEdit1.Text := SLSource.Text : mis 3s 469 ms
@+ Cirec