-
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
-
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)
-
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+
-
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,
-
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...
-
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.