Salut Je rencontre un phénomène étrange.Gestion de la mémoire JVM sous Unix/Linux
J'ai une application Java qui interroge la base de données au moyen de Hibernate ORM.
Dans HP-UX sgx842 B.11.11 U 9000/800 888281448 unlimited-user license
après avoir démarré le serveur et effectué quelques requêtes de quelques milliers d'enregistrements, la taille du segment se stabilise à 800 Mo.
Dans Linux sglx481.amk.st.com 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
la mémoire explose jusqu'à la mémoire JVM maximale (définie par l'option -Xmx
). Cependant, le système ne ralentit pas et peut toujours exécuter des requêtes. Il n'y a pas d'exception OutOfMemoryError
. Il n'y a pas de baisse apparente de performance visuellement, même si je n'ai pas utilisé d'outil.
Il n'y a pas non plus de problème sous Windows.
En veille prolongée, je n'utilise pas d'annotations mais j'ouvre et ferme manuellement la session et la traduction.
sessionFactory = new Configuration().configure(CONFIG_FILE_LOCATION).buildSessionFactory();
session = sessionFactory.getSessionFactory().openSession();
session.beginTransaction();
...
session.close();