Bonjour,
J'ai développé un programme de gestion pour un commerce familiale. Dans un souci de bien nétoyer la mémoire J'ai instancier les string comme ça
au lieu de :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String teste = new String ("teste");
Maintenant, je me trouve avec une erreur de type outOfmemoryError : java heep space. donc même la méthode stop and wait ne suffit appartement pas à faire le ménage, et ce malgré l'installation d'une barrette supplémentaire de mémoire viive dans l'ordinateur du client et d'allocation de 1024 mo
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2String teste = "teste";
sachant que :
1. Mon serveur de base de donnée tourne dans un thread séparé mais partage le même processus.
2. Le programme fait appelle à la base de donnée à l'ouverture de chaque fenêtre et surtout lorsque ces dernières doivent se rafraîchir et l'utilisateur garde souvent toutes les fenêtre ouvertes
3. toutes les propriété sont globale est sont instanciée dans le constructeurs.
Questions.
Comment structurer le code de telle manière a optimiser l'utilisation de la mémoire ?
Faut-il séparer le processus du serveur de base de donnée du programme principal ?
Que faire avec les fenêtre ouverte par l'utilisateur mais non utilisée. Peut-on les fermer au moment du passage du garbage collector. Par exemple au moment de l'exécution de la méthode finalize() ?
Merci pour votre aide ?
Salutations
Partager