Bonjour ! J’utilise MCEBuddy depuis quelques années. J’utilise actuellement MCEBuddy Premium 2.6.6.
J’utilise MCEBuddy pour maintenir synchronisés des ensembles de répertoires sources (que je gère sur le disque dur local d’un PC exécutant MCEBuddy) et des répertoires de destination (qui se trouvent sur un serveur de fichiers et sont accessibles via SMB), en utilisant les options « Ignorer la reconversion » et « Vérifier l’historique ». Les répertoires de destination sur le serveur de fichiers sont utilisés pour servir les médias convertis aux clients. MCEBuddy est configuré pour convertir les fichiers de certains répertoires sources et simplement répliquer les fichiers d’autres répertoires sans conversion (en utilisant l’option « Renommer sans convertir »). Le point principal à retenir est que les répertoires sources ne sont jamais vidés ; les fichiers « vivent » dans les répertoires sources en permanence, et les changements sont répliqués vers les répertoires « visibles » sur le serveur de fichiers au fur et à mesure que les répertoires sources changent. J’ai actuellement 9 589 fichiers dans les répertoires sources.
Tout cela fonctionne. Mon problème est que les performances d’analyse sont abyssales et s’aggravent à mesure que j’ajoute des fichiers. Le parcours initial des arbres de répertoires et la construction de la liste des fichiers sont assez rapides, trouvant tous les fichiers en environ 22 secondes et traitant jusqu’à 1 000 fichiers par seconde. (Pendant cette étape, je vois les fichiers énumérés dans mcebuddy.log comme « xxx est surveillé pour synchronisation avec le fichier de sortie ».) L’analyse des fichiers et la comparaison avec ce qui se trouve dans le fichier d’historique, cependant, se poursuivent pendant 49 minutes supplémentaires, ne traitant que 3 à 4 fichiers par seconde. (À ce stade, je vois les fichiers énumérés dans mcebuddy.log comme « xxx déjà converti avec le statut Converti ».) Ce processus semble principalement limité par le processeur, car MCEBuddy.Service.exe utilise en moyenne 24 à 25 % de l’utilisation du processeur sur un système à 4 cœurs (évidemment pas une bête, avec un Intel Core i5-7600 à 3,5 GHz et 16 Go de RAM). Si j’attribue l’affinité du processeur à 1 cœur de processeur pour ce processus, il utilise 100 % de ce cœur. Bien sûr, je ne connais pas les détails internes de MCEBuddy, mais je dois imaginer que toute cette surcharge de processeur est MCEBuddy comparant les fichiers dans l’arborescence du répertoire source avec les enregistrements dans le fichier d’historique, qui fait 7,36 Mo à ce stade. J’en sais assez pour réaliser qu’un fichier INI de cette taille est très coûteux à analyser. J’ai donc essayé de désactiver l’option « Vérifier l’historique » dans toutes mes tâches de conversion, pensant que cela amènerait MCEBuddy à ignorer le fichier d’historique et à simplement vérifier l’existence du nom de fichier de destination sur le serveur pour chaque nom de fichier source sur le disque local. Mais cela n’a pas du tout modifié les caractéristiques de performance ; cela a même ajouté 12 secondes à l’analyse (bien que cet écart soit si mineur dans le contexte que le changement de paramètre pourrait être sans importance).
J’ai utilisé Process Monitor pour examiner ce qui se passe, et même avec « Vérifier l’historique » désactivé, je vois MCEBuddy.Service.exe vérifier chaque fichier source une fois, et effectuer littéralement des centaines de lectures sur le fichier d’historique pour chacun d’eux, mais sans toucher du tout au serveur de fichiers. Je suppose que cela a du sens qu’il doive lire le fichier d’historique de toute façon pour savoir quel est le chemin du fichier de destination, mais je m’attendais à un changement de comportement ici. Quoi qu’il en soit, cela ne semble pas être ma solution miracle.
Pouvez-vous suggérer d’autres changements de paramètres qui pourraient améliorer les performances, ou est-ce que je pousse simplement les limites pratiques de l’architecture de MCEBuddy ? J’imagine qu’un tel cas d’utilisation fonctionnerait beaucoup mieux avec une vraie base de données (par exemple SQLite) et je pense que le fichier d’historique est le goulot d’étranglement ici, mais je suis ouvert aux suggestions.
J’ai déjà essayé de recréer le fichier d’historique (Afficher l’historique → Effacer l’historique, m’assurer que « C:\Program Files\MCEBuddy2x\config\history » a disparu, redémarrer le service MCEBuddy2x, démarrer la conversion et laisser le temps de reconstruire). Cela n’a également fait aucune différence.
Vérification de l’historique activée : 14:18:20 - 15:08:06 = 49m:46s
Vérification de l’historique désactivée : 13:09:50 - 13:59:48 = 49m:58s
Merci d’avoir lu !