Bonjour, je suis en train de bosser sur le moteur de copie d’ultracopier pour la version 0.3.
Je vais avant tout adapater le moteur de la version 0.2 car il est stable, je l’ai nétoyé.
Pour vous donner une idée de l’algorithme utilisé dans les différentes version majeur d’ultracopier:
Les parties rayé sont les ouvertures et fermeture des fichiers. Les partie pleines sont pour le rouge l’écriture du contenu du fichier et le bleu la lecture. Dans ce systéme les lenteurs lors de la fermeture du fichier en écriture ralentisse lors de la transistion entre deux fichiers. Et chaque lecture bloquante bloque l’écriture et inversement. L’OS lui attends plus pour bouger la tete du hdd, mais rien ne viens alors il écrit. Donc chaque bloque provoque un mouvement de la téte de lecture.
Voila l’algorithme de la version 0.2:
Içi tout est bien mieux, quoi qu’il reste encore des temps de manipulations des inodes, asser petit car ils sont sur le fichier en lecture. L’Os peu grouper içi les block pour optimisé les mouvements de la téte de lecture.
Pour l’avenir:
Bien que Ultracopier 0.3 aura un moteur de copie modulaire et sélectionnable, celui que je ferai sera dans ce gout la. Travaillant par pool de binaume pour minimiser les temps sur les inodes.
Le moteur de copie semble étre converti, je n’est pas encore eu l’occasion de le tester à cause un bug pour le chargement du plugin. Je vais attaquer la partie plugin sur le web et mise à jour automatique.
Parmit les changements du moteur de copie: optimisation du code, utilisation en paralélle de threads pour autoriser l’ajout d’un dossier durant le listing d’un autre, support des nouveauté apporté par ultracopier 0.3 (comme grouper le moteur de copie et celui de listing, copie ou déplacement par fichier, info exporter à l’interface en texte pur identifier par des id, gestion encore plus fine de la liste de transfére comme une base de données, …).