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

Persistance des données Java Discussion :

Un max de performance


Sujet :

Persistance des données Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut Un max de performance
    Hello,

    j'aimerais bien avoir un framework pour la persistence le plus performant possible, sur lequel je vais appeler beaucoup de fois et qu'il y aura beaucoup d'objets.

    Je pensais d'abord le faire moi même, en me compilant des PreparedStatement à l'avance, en gros le truc sur mesure histoire que ça ne charge pas 36 trucs, et utiliser ehcache à coté,
    Mais je me demande quand même si je peux compter sur un qui existe et que c'est vraiment très très bien niveau performance.
    J'en ai déjà utiliser pour pas mal de transactions mais jamais vraiment beaucoup à long terme.

    Si quelqu'un avait avis la dessus, ça serait sympa.

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    Hibernate a fait ses preuves pour gérer de manière très fiable un grand nombre de transactions. Par contre il est necessaire d'appliquer les bonnes pratiques et de bien comprendre les implications sur les performances des décisions prises (fetch en lazy ou eager, génération non necessaire de jointures complexes, récupération de plus d'objets que necessaire etc...).
    En fonction du type d'objets, il est possible d'utiliser le cache de second niveau (objets qui changent rarement)

  3. #3
    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
    Il faudrait déjà savoir ce que tu veux optimiser :
    - les lectures
    - les écritures
    ...

    Si c'est le volume des lignes qui pose problème ou le nombre de tables etc...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 80
    Par défaut
    Bjour,

    Ca serait surtout pour l'écriture et une bonne gestion de cache, ça ne devrait pas arreter d'écrire pratiquement.
    Ce n'est pas vraiment le nombre de record qui pose problème.

    Ce qui m'inquiete c'est le temps d'écriture, j'ai peur que le framework tente, par exemple, d'update des valeurs inchangées, alors que je n'ai besoin que d'un update pour un petit champs uniquement.
    Enfin tous des petits trucs comme ça, qui, dans un "custom framework" pourraient être évités.

    Selon slevy, hibernate à l'air de bien convenir.
    Je l'utilise au travail mais ce n'est pas vraiment les mêmes besoins. Je n'ai jamais cherché à vraiment l'optimiser, chose que je devrais peut-être faire....

    Voila, en gros mes 2 critères principaux seraient, une très bonne gestion des écritures et de la cache. Bon pour le reste, il ne faut pas un truc atrocement lent en lecture, mais juste quelque chose de convenable.

    A ce stade j'ai bien envie de le tenter en hibernate, j'attends tout de même de voir si quelqu'un proposerait LE framework...

    Merci,

  5. #5
    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
    D'un point de vue "persistence", Hibernate est un excellent choix, éprouvé...

    Je doute cependant qu'il puisse être plus performant en écriture qu'un simple PreparedStatement.
    Le moteur se posera forcément plus de question (objets en cache, listener etc...) là où JDBC fera uniquement... ce qu'on lui demande

    Même raisons pour les lectures...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 383
    Par défaut
    Oui, OButterlin a raison, Hibernate est adapté à une application de taille moyenne ou grande, pour gérer efficacement la couche de persitence (pas besoin d'écrire un framework maison qui fera pas aussi bien).
    Par contre, pour des traitements batch, une petite appli ou une partie d'une appli où les performances en écriture sont LE critère, Hibernate ira pas plus vite que du JDBC.

Discussions similaires

  1. [Aide] Performances de mon algorithme min-max
    Par moithibault dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 16/02/2013, 02h22
  2. Réponses: 1
    Dernier message: 24/08/2012, 12h54
  3. Performance versus INNER JOIN et MAX
    Par Griswold dans le forum Développement
    Réponses: 1
    Dernier message: 27/08/2010, 20h41
  4. performance données VARBINARY(MAX)
    Par PickEpique dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 28/07/2010, 10h04
  5. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 19h38

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