bonjour mes amis,
j'ai une application web en spring+hibernate+struts. et tout marche trés bien. Mais aprés le déploiment en qlq jours un bug me sort le message : java.lang.OutOfMemoryError.
aprés une recherche sur internet j'ai trouvé deux astuces :
- augmenter la mémoire allouée par la JVM
- optimiser le code en libérant de objets non utilisé pour quels soit supprimer par le Garbage Collector.
pour la deuxième solution, j'ai examiner le code et j'ai remaque que toutes les requête HQL sont enoyée par le bais d'une méthode qui retourne query.list();.
donc une liste qui a toutes les objets souhaité à afficher... et je trouve ça non optimal (et si on a 1000000 objets. c'est la panique de la RAM)
ma question :
- y a t'elle une différence entre query.list() et query.iterate() dans le sens d'optimisation de la mémoire allouée ?
merci d'avance
Partager