IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Optimisation par multithread


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 98
    Par défaut Optimisation par multithread
    Bonjour,

    Je developpe actuellement une application locale, s'adressant à un Web-service. Celle ci dois traiter des fichiers lourds (entre 300 et 45 000 enregistrements).

    Le web service gere les soumissions une par une.
    Malheureusement il est developpé par une entreprise exterieur, je n'ai pas le droit de le modifier pour qu'il puisse gerer des paquets de soumissions.

    Pour optimiser mes traitements j'ai donc decidé de creer un thread par ligne de fichier effectuant la soumission a mon web-service au sein d'une connexion commune a tous les threads.

    Le resultat etait decevant a moins que j'autorise 100 threads simultanés.

    Mes questions:

    1 - Quels sont les risques encourus a l'utilisation d'autant de Threads pour mon systeme (pas de probleme niveau web service il est reputé robuste (env 1000 soumission/s))?
    2 - Existe t'il de meilleurs moyen d'optimisation dans mon cas ?

    Merci d'avance pour vos reponses.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    qu'entends tu pas connexion commune à tous les Threads? Les risques en faisant trop de Threads, c'est

    soit sur des OS peu peformant, de les surcharger à cause du traitement multithread (a moins de tourner sur un tout vieux unix ou un view windows 95, ça devrais peu jouer)

    soit au niveau java d'avoir plus de blocages dus à la synchronisation des tes bouts de codes que de gains à travailler en parallèle

    soit de faire s'écrouler les performance en raison d'une limitation de la bande passante que tout le monde se battera pour avoir.


    Si t'hésite sur les perfs, le mieux serait de tester des montées en charge. Tu peux même, si tu as le temps, faire des algos qui testent ça en temps réel pour monter en charge progressivement (10, 20, 50, 100, 1000 threads) suffit de tester au fur et à mesure que t'augmente le nombre de threads pour savoir si tu augmente aussi ton débit. Quand tu plafonne, t'arrête avant que ça s'écroule.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2006
    Messages
    98
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 98
    Par défaut
    Ok merci pour ces precision.

    En fait le but c'est surtout de surcharger le reseau afin qu'il y ai toujours une soumission prete pour le Web service des qu'il en finis une...

    Je vais utiliser ta methode de montée en charge.

    Merci pour les infos.

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    par les webservice ne traite qu'une demande à la fois, j'avais cru comprendre qu'il fallait plusieurs requete pour traiter tout, pas que le webservice met toutes les demande en queue et les traite une à une. Si il traite une chose à la fois et fait patienter les autres demandes pendant ce temps, en supposant qu'il traite ta requete en 10ms et que ta latence réseau est de 100ms pour te connecter au webservice, 10 Threads sont largement suffisants pour assurer 10 demande par 100 millisecondes.

Discussions similaires

  1. optimisation par nom de repertoire court
    Par petitours dans le forum Access
    Réponses: 5
    Dernier message: 07/05/2008, 23h13
  2. Optimisation par la methode du gradient conjugue
    Par mfontan dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 12/03/2008, 18h41
  3. Réponses: 2
    Dernier message: 08/05/2007, 08h14
  4. Optimisation par la (pré-)compilation
    Par femtosa dans le forum C
    Réponses: 4
    Dernier message: 02/05/2007, 11h25
  5. Algorithme d'optimisation par colonie de fourmis
    Par floopy dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 08/11/2006, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo