Bonjour à tout,
Je travaille sur un programme de télechargement qui récupere des fichiers depuis internet; l'utilisateur peut choisir le nombre de parties du meme fichier à télecharger simultanement (ex de 1 à 10) en exploitant la propriété de HTTP1.1 de pouvoir lire une portion d'un fichier.
Pour chaque partie un thread est creé avec un buffer de 1 ko pour lire les données; chaque fois que les données sont lues on les écrit dans l'emplacement approprié dans le fichier de destination dont la taille est ajustée au départ pour etre la meme de celle du fichier source. L'écriture se fait dans une methode synchronisée.
De plus tous les threads de tous les telechargements partagent un fichier où sont ecrites des informations importantes pour pouvoir reprendre ulterieurement les télechargements incomplets (tel que l'url, le nombre de threads du telechargement, le nombre d'octets telechargés par chaque thread ..etc).
j'ai la deux questions:
1- Une taille de 1 ko pour le buffer de lecture est-elle bien choisie ?
2- Est il pratique d'ecrire les données dès qu'elles sont lues ?. Avec un nombre important de télechargements dont chacun contenant plusieurs threads il y aura un nombre élevé d'accès au disque par seconde.
J'espere que j'étais clair.
Merci d'avance.
Partager