Bonjour, j'essaie de réaliser un logiciel dont le premier travail consiste à scanner l'arborescence complete d'une machine pour stocker la liste de tous les fichiers. Or les machines en questions sont d'énormes serveurs, plusieurs millions de fichiers et j'ai des problemes d'optimisations.
Pour commencer j'ai un thread qui scan les disques de façon récursive (algo présent dans la FAQ), ce thread remplit un vecteur de File qui est sérializer et réinitialisé a chaque fois que sa taille dépasse 35000. Cela crée des 10aines de fichiers d'environ 3Mo.
A la fin du scan je dois trier par ordre alphabétique tous les fichiers trouvés par leur nom (choix arbitraire). Et c'est la qu'est le plus gros problême. J'ai implementé un "quicksort" (algo de tri rapide) qui fonctionne bien mais je dois lui donner en entrée un vecteur de file contenant tous les file trouvés. Or avec plusieurs millions de files, j'explose allégrement la mémoire.
Je cherche donc un moyen de faire le tri des fichiers petit bout par petit bout pour ensuite résérialiser les vecteurs triés.
Si vous avez des idées sur comment accélerer toutes cette procédure je suis preneur. Merci.
Partager