Ndmax
Messages postés13Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention18 juin 2003
-
12 juin 2003 à 09:18
Ndmax
Messages postés13Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention18 juin 2003
-
13 juin 2003 à 19:09
Slt !
J'ai fait une petite appli et j'essaie maintenant de l'optimiser..
Je me suis rendu compte que parfois, la fonction CopyFile() peut être très rapide sur un fichier de plusieurs Méga, et d'autres fois pour le même fichier, au même moment du programme, il va mettre au moins 5 s de plus !!!
Comme je l'utilise plusieurs fois dans mon appli, c'est assez ennuyant car parfois je peux avoir un écart de 15 à 20 s pour le même résultat !!!
J'essaie de faire le plus rapide et fiable possible.
cs_Bestiol
Messages postés833Date d'inscriptiondimanche 6 janvier 2002StatutMembreDernière intervention 3 novembre 20051 12 juin 2003 à 11:03
Peut-être en essayant une autre fonction ?!
Je propose ça comme ça... Car en fait, c'est peut-être tout simplement par rapport à l'occupation de ton système, que la fonction prend plus ou moins de temps !
Tu peux créer ta propre fonction de copie avec BlockRead BlockWrite, ou utiliser deux Sream et la méthode CopyFrom !
Ce sont différentes solutions, mais je ne sais pas si elles seront plus rapides...
Ndmax
Messages postés13Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention18 juin 2003 13 juin 2003 à 09:06
Oui, désolé de ne répondre seulement maintenant.. mais y'avait des pb avec mon identification sur le site... !! ??
J'ai donc bien utilisé la méthode par blocs, même avant que je ne vois ta réponse.
Je l'ai testée dans la foulée, et je peux te donner le résultat de mes tests :
-> Pour copier un fichier de 10 Mo !!!
CopyFile --> 35s (4x)
TFileStream --> 18s (3x)
Block --> 4s (1x)
--> 3s (1x)
--> 2s (5x)
(nb de fois que le résultat a été obtenu)
Donc on voit bien tout de suite la rapidité de cette méthode, que j'avais apprise en m'auto-formant à Delphi, mais je ne pensais pas qu'elle était si rapide !!!
Ndmax
Messages postés13Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention18 juin 2003 13 juin 2003 à 19:09
Et bien écoute, comme ct "presque" instantané et que les fichiers que j'aurais à copier seront normalement inférieurs à cette taille, je n'ai pas testé ;)
Mais j'essaierai qd même !
Y a-t-il une limite comme taille de buffer ?
Et on peut récupérer la mémoire réservée par le buffer comment ??
Merci.