beegees Posté(e) le 9 janvier 2007 Partager Posté(e) le 9 janvier 2007 Salut a tous. Dans un programme java je dois faire tourner une appli extérieure. Je l'ai donc tester dans un projet test avant de l'insérer dans un projet deja en court. Dans mon main je lance deux threads qui récuperent les donnees de l'appli et les erreurs. Le temps total est de 130 ms a peu pres et le code marche impec. Cependant, lorsque je copie exactement le même code dans le vrai projet, le temps de traitement passe à 1 seconde. En fait, 1 seconde par chaine de caracteres et il doit en traiter 150..., donc un peu moins de 3 minutes...c'est beaucoup trop long. voici le code du thread : public void run() { try { BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line = ""; try { while((line = reader.readLine()) != null) { // Traitement court } } finally { reader.close(); } } catch(IOException ioe) { ioe.printStackTrace(); } } Apres quelques tests, il s'est avérer que le traitement le plus long est le readline (+ ou - une seconde). Savez vous d'ou vient un tel changement de temps entre deux codes identiques? Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 9 janvier 2007 Partager Posté(e) le 9 janvier 2007 Peut-être que ton thread mange trop de temps processeur, et que le process lancé a du mal à s'exécuter, ce qui en retour ralentirait la lecture du flux... Tu devrais essayer de placer un sleep court dans la boucle de lecture. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Quarky Posté(e) le 9 janvier 2007 Partager Posté(e) le 9 janvier 2007 Sentinel pour le "triplon" Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 9 janvier 2007 Partager Posté(e) le 9 janvier 2007 Erf désolé mais au boulot le navigateur m'a planté 3 fois de suite entre les mains... du coup je n'ai pas pu voir si ça avait bien posté Merci de ta mansuétude grande ô combien Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 9 janvier 2007 Partager Posté(e) le 9 janvier 2007 tu ne fais pas d'autres accès au fichier en parallèle de ce thread ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
beegees Posté(e) le 10 janvier 2007 Auteur Partager Posté(e) le 10 janvier 2007 non, un seul acces. et pourquoi le thread consommerait-il plus de temps dans un code que dans l'autre? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.