Salut,
*Peut être* pourrais tu également gagner pas mal de temps en repensant completement ton algorithme... :
Au lieu de la séquence
ouvrir le fichier
lire / écrire une donnée dans le fichier
fermer le fichier
recommencer en (1)
tu pourrais, par exemple, envisager de placer l'intégralité du contenu dans une collection d'objet "qui va bien" pour gérer les informations.
tu en arriverais alors à une séquence de l'ordre de
ajouter l'information à écrire dans une collection d'objet
recommencer en (1)
ouvrir le fichier
écrire toutes les informations
fermer le fichier
ou de
ouvrir le fichier
lire l'information dans le fichier
ajouter l'information à la collection
recommencer en (2)
fermer le fichier
Il serait même, pourquoi pas, possible d'envisager de récupérer carrément l'intégralité du buffer du fichier ( cf la FAQ: Comment lire l'intégralité d'un fichier texte dans un buffer ?) dans la collection "qui va bien", de manière à limiter au mieux les acces disques.
En effet, ce qui prend vraiment énormément de temps, ce sont les accès disques, car il faut en permanence attendre que les tetes de lecture se positionnent correctement, puis que le disque termine le tour qu'il vient de commencer, et, enfin, que le bus de données arrive à suivre pour l'envois des données lues / écrites
Partager