Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lenteur de la fonction CopyFile() !!! [ Archives / J'AI BESOIN D'AIDE !!!! :O ] (Ndmax)

jeudi 12 juin 2003 à 09:18:08 | Lenteur de la fonction CopyFile() !!!

Ndmax

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.

Pouvez-vous me conseiller ?
Merci.

jeudi 12 juin 2003 à 11:03:25 | Re : Lenteur de la fonction CopyFile() !!!

Bestiol

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...

Bonne prog' !
Bestiol.


-------------------------------
Réponse au message :
-------------------------------

> 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.
>
> Pouvez-vous me conseiller ?
> Merci.

vendredi 13 juin 2003 à 09:06:57 | Re : Lenteur de la fonction CopyFile() !!!

Ndmax

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 !!!

Merci de ta réponse.

vendredi 13 juin 2003 à 13:27:49 | Re : Lenteur de la fonction CopyFile() !!!

Delphiprog

Administrateur CodeS-SourceS
Ok, bravo pour les tests mais as-tu essayé avec différentes tailles de buffers dans les méthodes BlockRead et BlockWrite ?

May Delphi be with you


-------------------------------
Réponse au message :
-------------------------------

> 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 !!!
>
> Merci de ta réponse.
>

vendredi 13 juin 2003 à 19:09:21 | Re : Lenteur de la fonction CopyFile() !!!

Ndmax

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.



Cette discussion est classé dans : fonction, appli, essaie, copyfile, lenteur


Répondre à ce message

Sujets en rapport avec ce message

Pb de Thread [ par lo_63 ] Bonjourj'ai une petit question sur les threads.voila je suis en train de cherché un moyen pour executé une fontion qui ce trouve dans un autre thread. macro et fonction key macro Ctrl+Shift+R ? [ par PhilLU ] Salut,Je souhaite créer une macro avec Delphi.En fait ouvrir une appli externe et entrer une valeur dans le champ sous focus de cette même appli, puis [fonction] Reactivation application [ par titiyo ] bonjours , voila je voudrait savoir quelle fonction est appele lors d'un click sur lapplication dans la barre des tache ou si on fait alt tab pour rev ouvrir mon appli avec le fichier sur lequel j'ai double cliqué dans l'explorateur [ par H60 ] Bonjour à tousQuelqu'un peut il m'indiquer comment récupérer le message Windows pour lancer mon application en ouvrant le fichier sur lequel j'ai doub Comment libérer un TBitmap résultant d'une fonction? [ par Caribensila ] Salut à tous, Une question existentielle me tourmente...Je vous donne un petit exemple, ce sera plus simple: <font face="Verd Cacher mon appli de barre de tache [ par cocowz ] Bonsoir a tous ....Je cherche comment faire pour que quand je lance mon programme elle sera invisible dans la barre de tache...J'ai trouve sa*ShowWind integration d'un noyeau SQL [ par othland ] slt tlm;j'ai réalisé un application qui fonctionne en relation avec une base de données SQL !la question posée c'est : est ce que je peux integrer un lister les fonction d'une dll [ par mouhandarab ] comment lister les fonction d'une dllj'utilise un dependency walker mais jarrive pas a trouver les return d'une fonctionmerci pour votre aide Mettre a jour son appli [ par cocowz ] Bonjour, Je cherche cherche comment creer une fonction pour mettre a jour mon application par le net.Pourriez vous m'aider a le faire...En fait je veu fonction random en Delphi [ par alexyou ] tt le monde*salut;j'aimerais bien que qlq 1 me dis comment on utilise la fonction   Random() par exemple un numéro de 1 à 100mais que chaque fois on a


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,328 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.