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

Hibernate Java Discussion :

Hibernate et performance CPU


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut Hibernate et performance CPU
    Bonjour,

    j'utilise Hibernate 3, Spring 2. dans une application web, lorsque l'utilisateur se connecte, j'ai besoin de lancer plusieurs requêtes pour charger des objets (ses droits) en session.
    quand j'essaye des tests de charges, pour 10 utilisateurs virtuels, la CPU monte à plus de 90% à la connexion d'un utilisateur,
    j'ai essayé de regarder ce qui se passe, je pense que le chargement des objets hibernates utilise beaucoup la CPU.

    Est ce que celà est normal? comment peut on réduire cette utilisation excessive de la CPU?

    Merci..

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Le mieux serait probablement de réduire le nombre d'appels, en les synthétisant. Tu peux par exemple faire appel à une procédure stockée qui te renverrait un gros bloc d'informations dans une map.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Difficile de donner un avis avec ces infos.
    Affiche le logs d'Hibernate (sql) pour voir les requêtes qui sont envoyées vers ta base.
    Installe un outil genre p6spy pour voir le temps que tu passes dans tes requêtes.

    Ca semble quand même bizarre vu le peu d'utilisateurs simultanés..

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Je vois les requêtes qui causent le problèmes, c'est une requête qui a beaucoup de colonnes en retour, ou c'est un ensemble de requêtes: load de plusieurs listes et chaque liste a pas mal de colonnes aussi.. je ne sais pas si ça vient de la configuration d'hibernate ou d'ailleurs, les requetes en base s'exécutent avec un temps raisonnable, la CPU de mon serveur est de 3Ghz, je ne veux pas demander plus sans savoir si le problème ne serait pas applicatif.

    à la fin des requêtes le serveur 'se calme', je suis certain que c'est le traitement hibernate qui prend charge la CPU.

    NB: hibernate 3.2.GA + c3p0+ spring 2.5

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Combien de colonnes "remontes" tu ?
    Est-ce que tes requêtes ramènent juste les données dont tu as besoin, ou plus ?
    As-tu désactivé le lazy-loading ?

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Combien de colonnes "remontes" tu ?
    Est-ce que tes requêtes ramènent juste les données dont tu as besoin, ou plus ?
    As-tu désactivé le lazy-loading ?
    Je pense également que son problème vient de là...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Rédacteur

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    4 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 184
    Par défaut
    Citation Envoyé par fr1man Voir le message
    Combien de colonnes "remontes" tu ?
    Est-ce que tes requêtes ramènent juste les données dont tu as besoin, ou plus ?
    As-tu désactivé le lazy-loading ?
    yes, je désactive le lazy-loading, c'est désactivé par défaut avec hibernate 3 je pense ..

    j'ai entre 20 et + de 50 colonnes, suivant les requetes, sachant que je n'ai pas besoin de toutes les colonnes mais, je ne peux pas dire à hibernate de ne pas prendre par exemple une colonne qui n'est jamais renseigné ou pour un join ne pas prendre toutes les colonnes.
    mais même sans jointure, le load des listes prend baecuou de ressources:
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    List result = getHibernateTemplate().find("from Role  order by  name")

Discussions similaires

  1. [Hibernate 3] Questions générales sur les performances
    Par hugo123 dans le forum Hibernate
    Réponses: 7
    Dernier message: 13/12/2006, 17h02
  2. Réponses: 8
    Dernier message: 21/11/2006, 11h54
  3. [Hibernate][Ibatis] Problème de performance..
    Par Saloucious dans le forum Hibernate
    Réponses: 2
    Dernier message: 29/10/2005, 13h21

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