[ Forum ]

Stratégie de copie (optimisation des performances)

Le reste

Stratégie de copie (optimisation des performances)

Postby DETOMINE » Thu May 23, 2013 7:37 am

Bonjour à tous.
Ma proposition est sans doute un peu naïve, mais je me dis que si ça peut optimiser les performances...

J'ai remarqué lors d'une grosse copie que la vitesse de transfert fluctuait beaucoup, notamment parce que j'avais pas mal de petits fichiers à copier (HDD classique vers DD externe USB2 (plus lent que le disque dur interne)).
Je me demandait donc quelle stratégie utilisait ultracopier pour les copies, et du coup s'il était possible d'optimiser les transferts, tout en gardant une sécurité maximale pour les données.

Je me disait par exemple que pour optimiser les copies (et surtout les copies de pleins de petits fichiers, qui sont les plus problématiques à gérer), une stratégie possible serait de copier les petits fichiers (et regrouper) en RAM (par paquet de 50Mo par exemple), avant de les copier sur le disque dur d'arrivée (avec une option pour limiter l'usage de la RAM éventuellement).
Sachant que l'on est forcément limité par la vitesse d'écriture du disque d'arrivée ou par la vitesse de lecture du disque source...

Je m'imaginais quelques chose du genre :
Bon, Dans le cas où l'on est limité par la vitesse de lecture du disque source, il n'y a pas grand chose à faire : on copie directement, de toute façon si on veut grouper les fichiers ou quoique ce soit, on est perdant sur la vitesse de lecture.

Mais dans le cas où l'on est limité par la vitesse d'écriture du disque d'arrivée, ça devient très intéressant (SSD vers HDD de sauvegarde, HDD vers disque dur externe... etc), dans le sens on l'on peut créer un fichier tampon (par exemple en ram) et écrire en continu sur le disque...

Est il possible d'optimiser ultracopier en ce sens?



Je ne doute pas que le principe que j'expose est simpliste (ça doit être plus compliqué que ça à implémenter) mais je me dis qu'il y a quelque chose à faire en ce sens.

Dans tous les cas, je pense qu'il serait intéressant qu'une page de wiki soit rédigée avec les algorithmes utilisés par ultracopier, histoire :
-que le doute ne plane pas concernant les méthodes utilisées;
-que les non codeurs puissent contribuer à ultracopier par (exemple par) l'optimisation des algorithmes.
--
Utilisateur de Ultracopier Ultimate.
DETOMINE
 
Posts: 28
Joined: Thu May 23, 2013 4:25 am

Re: Stratégie de copie (optimisation des performances)

Postby alpha_one_x86 » Thu May 23, 2013 7:51 am

Boujours,

Le procédé décrit est celui d'un buffer. Il en existe un dans Ultracopier (en mode streaming), un dans Qt, un dans l'Os, un dans le hdd.
La seul optimisation c'est de notifié à l'OS que l'accés est séquentiel. Mais pour cela je doit réécrire le moteur de copie en C.

Les algorithmes utilisés dans Ultracopier sont en partie dans le wiki (en faite la dernière variante ne l'est pas mais ce n'est qu'une variante du truc de base).
Developer of ImageUltracopier/ImageSupercopier and of the game ImageCatchChallenger
User avatar
alpha_one_x86
Site Admin
 
Posts: 1237
Joined: Sun Oct 26, 2008 9:09 am

Re: Stratégie de copie (optimisation des performances)

Postby DETOMINE » Thu May 23, 2013 8:03 am

Là où ça devient étonnant c'est qu'avec tous ces buffets on arrive encore a avoir le disque d'arrivée qui n'écrit pas en permanence? Faut il augmenter le buffer dans les options à ton avis?

Merci pour la réponse en tout cas.
--
Utilisateur de Ultracopier Ultimate.
DETOMINE
 
Posts: 28
Joined: Thu May 23, 2013 4:25 am

Re: Stratégie de copie (optimisation des performances)

Postby alpha_one_x86 » Thu May 23, 2013 8:20 am

Je pense que Windows écrit, mais qu'il remonte la progression une fois qu'il à écrit le buffer, d'ou la progression saccadé.
Developer of ImageUltracopier/ImageSupercopier and of the game ImageCatchChallenger
User avatar
alpha_one_x86
Site Admin
 
Posts: 1237
Joined: Sun Oct 26, 2008 9:09 am

Re: Stratégie de copie (optimisation des performances)

Postby DETOMINE » Thu May 23, 2013 8:27 am

Je comprends.
Dans ce cas je pense qu'il faudrait lisser un minimum la vitesse (et le temps restant aussi) de manière à éviter les infos affichés du style 0Mo/s -> 100Mo/s -> 0Mo/s -> 150Mo/s...
--
Utilisateur de Ultracopier Ultimate.
DETOMINE
 
Posts: 28
Joined: Thu May 23, 2013 4:25 am

Re: Stratégie de copie (optimisation des performances)

Postby alpha_one_x86 » Thu May 23, 2013 8:41 am

Et encore, je me base sur les X derniére échantillons:
https://github.com/alphaonex86/Ultracop ... Variable.h
Pour l'instant 5 échantillons fait à 500ms d’intervalle.
Developer of ImageUltracopier/ImageSupercopier and of the game ImageCatchChallenger
User avatar
alpha_one_x86
Site Admin
 
Posts: 1237
Joined: Sun Oct 26, 2008 9:09 am


Return to Autre



cron