Bonjour,
J'ai un gros probléme de performance :
J'ai un service web (en HTTP/xml) qui exporte des données de la base. Voici comment ça marche (en gros):
- On fait appel au web service
- Les données sont extraites de la base à l'aide d'hibernate (250 000 objets sont instanciées)
- 250 000 nouveaux objets sont instanciées pour remplir les classes générés par jaxb (permet de générer automatiquement du XML à partir d'objets)
- jaxb nous génére une string contenant le xml demandé (20 Mo)
- La string est envoyée en réponse du service
bon bref l'opération est trés lourde et utilise 300 Mo de mémoire dans la jvm. Les objets instanciés vont directement dans la old génération du heap et ne sont pas libérés à la fin de l'opération.
Comment gerer ça ? faut t-il augmenter la taille de l'eden dans le heap ou modifier la configuration de la jvm ? Peut être déréférencé les objets "à la main"
Quelles sont vos solutions sur ce genre de probléme ?
Merci d'avance
Partager