Aller au contenu

Réseau anormalement lent


Pierre87

Recommended Posts

Salut !

Dans mon application, je veux afficher des images qui viennent d'internet.

Tout fonctionne normalement, mon seul soucis, c'est que c'est EXTREMEMENT LENT (je suis en 3G)

Ce qui prends énormément de temps, c'est les requêtes que j'effectue lorsque je veux récupérer mes images ...

Ca peut me prendre 10 secondes pour une bête image 50x50 en jpg

Ok, la 3G c'est lent, mais quand même !

Quand je regarde l'application Twidroid, elle charge des dizaines d'avatars quasi instantanément (en 3G).

Je n'arrive pas à voir ce qui cloche dans mon application :(

Voilà une partie de mon code :

initialisation de mon client http

       HttpParams params = new BasicHttpParams();
       ConnManagerParams.setMaxTotalConnections(params, 10);
       HttpConnectionParams.setConnectionTimeout(params, 20 * 1000);
       HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);

       SchemeRegistry schemeRegistry = new SchemeRegistry();
       schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
       schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));

       ClientConnectionManager cm = new ThreadSafeClientConnManager(params, schemeRegistry);

       this.httpClient = new DefaultHttpClient(cm, params);

récupération d'une image

HttpGet method = new HttpGet(route);

           System.out.println("START IMAGE WEB REQUEST");
           HttpResponse response = application.getHttpManager().execute(method); // ça prend trop de temps ici !!!
           System.out.println("STOP IMAGE WEB REQUEST");

Merci !

Lien vers le commentaire
Partager sur d’autres sites

Je viens de remarquer un truc aussi :

Le temps que je mets à récupérer une image est indépendant de la taille de l'image.

Si mon image fait 50x50 ou 640x640, je mets toujours 8 secondes pour la récupérer.

Ca doit venir du fait que mon HttpClient recrée une nouvelle connection pour chaque images.

Mes images étant toujours sur le même domaine, comment faire pour réutiliser les connexions déjà établies ?

Lien vers le commentaire
Partager sur d’autres sites

Je viens de trouver une piste : ça vient d'un "redirect"

En fait, les url des images que j'ai, ne sont pas les url "finales"

Avant de pouvoir récupérer mon image, je fais une première requête, qui me redirige sur un autre serveur.

Pour le moment, je ne peux pas me passer de ce redirect, car ce n'est pas moi qui contrôle la contenu de mes urls, ni l'adresse finale des images...

Vous connaissez un moyen pour que mon HttpClient se souvienne de mes "redirect" ?

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...