Text.Write : vitesse d'exécution en Delphi 5 / Delphi 2006
Bonjour !
J'ai constaté un problème de vitesse d'exécution assez gênant avec la méthode Text.Write en Delphi 2006, en particulier sur des fichiers distants (réseau local).
Par exemple, avec le code suivant ("F" est un fichier text, "Line" une chaine d'environ 200 caractères) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| AssignFile(F, FileName);
try
Rewrite(F);
for l := 1 to 100 do
begin
for c := 1 to Length(Line) do
Write(F, Line[c]);
Writeln(F);
end;
finally
CloseFile(F);
end; |
Exécuté sur un fichier distant :
Delphi 5 -> 0.08 secondes
Delphi 2006 -> près de 8 secondes
Il y a-t-il une raison à ça ?
D'avance merci :)
Adrien
cela ressemble a un flush automatique
Je n'ai pas D2006 mais ce que tu decris ressemble a un flush automatique lors d'un appel a WriteLn.
As-tu regarde de ce cote la ?
Tu peux aussi reduire le nombre d'appel a WriteLn en construisant une chaine temporaire et en n'appelant writeln que de temps en temps toutes les 10000 lignes par exemple.