Hibernate, JDBC et la performance?
Actuellement, je suis le changement de mon application web java à partir de JDBC pour Hiberner, dans mon application actuelle avec JDBC je charge statique de données lors de l'initialisation de l'application dans des variables statiques, donc je n'ai pas d'accéder directement à la base de données à chaque fois que j'ai besoin de quelques données statiques, maintenant commutation hiberner, je suis à la pensée de se débarrasser de ces variables statiques comme autant que j'ai fait des recherches hibernate garde en mémoire les données dans une mémoire cache.
Je suis assez nouveau à hibernate donc je ne sais pas si le passage de ma méthode de mise en veille prolongée donnera toutes les améliorations de performances. Je vais poursuivre les recherches en état d'hibernation de la mise en cache et d'exécuter des tests de performance pour voir quelle méthode est la meilleure, mais voudrais juste quelques avis sur ce que pensent les autres concernant les performances de ces deux méthodes.
Grâce.
Quelle est votre raison de la modification de JDBC pour Hiberner? En termes de performances, bien écrit JDBC (avec cache) devrait battre Hibernate à chaque fois. En termes de maintenabilité, la réponse serait... ça dépend de quel genre de requêtes/modifications de base de données dont vous avez besoin...
Si vous êtes surtout intéressé par les capacités de mise en cache, alors pourquoi ne pas aller pour ehcache plutôt que d'hiberner? En moyenne, hibernate auteurs dénoncent une surcharge de 10%.
Je pense que la recherche pour aider à la compréhension des caractéristiques de performance couramment utilisé dans les bibliothèques est sur le sujet de ce site.
des améliorations de performances non; le développement de la productivité, peut-être que oui.
OriginalL'auteur JCS | 2013-06-17
Vous devez vous connecter pour publier un commentaire.
JDBC donnera toujours de meilleures performances par rapport à Hibernate pour la plupart de la base de données des fournisseurs. Vous pouvez vérifier la comparaison faite comme indiqué dans le lien ci-dessous. Il conclut que hibernate est rapide lorsque quering tables avec moins de lignes d'autre jdbc est meilleur.
http://phpdao.com/hibernate_vs_jdbc/
Une autre bonne performance stats peuvent être trouvés dans Hiberate forum de discussion à https://forum.hibernate.org/viewtopic.php?f=1&t=931708
Il stipule ce qui suit afin de performances prises en raison de l'utilisation de hibernate, Veuillez noter que cela peut être amélioré par le réglage d'hibernation pour ceux besoins.
Le choix du mode veille prolongée sur jdbc et sql les requêtes n'est pas en raison de la performance, mais pour des raisons principalement de la persistance d'objet de base de données et l'indépendance en termes de pas de l'écriture de la base de données des requêtes spécifiques. Vous pouvez lire les pdf guide pour obtenir une meilleure vue.
http://www.mindfiresolutions.com/mindfire/Java_Hibernate_JDBC.pdf
OriginalL'auteur AurA
Pour votre situation particulière, je voudrais vous recommandons de créer votre propre objet qui permettrait de maintenir nécessaire statique de valeur(s). Vous pouvez la remplir lors de l'initialisation de votre demande, ou lorsque des données sont demandées pour la première fois.
Comme pour le comparatif perfromance, votre meilleur des cas, c'est que votre Hibernate à base de couche d'accès aux données serait perfrom aussi bon que JDBC, ou la perfromance de dégradation n'aurait pas d'incidence globale de l'utilisateur expereince. Hibernate est utilisé pour accélérer le développement et d'améliorer la maintenabilité, de ne pas obtenir un perfromance bord au-dessus de JDBC.
OriginalL'auteur Olaf