Utiliser au mieux GC en Java

Fermé
seb - 8 janv. 2004 à 11:27
 seb - 8 janv. 2004 à 12:52
Bonjour,

J'ai remarqué que malgré que j'utilisais le Garbage Collector dans Java (surtout dans les applis), ça n'empèchait pas l'occupation mémoire de grandir, au bout d'un moment ça dépasse la mémoire allouée à java et tout se bloque.

j'ai créé une appli que je lance au démarrage de la machine et qui reste en tache de fond, j'ai pas envie d'augmenter la taille allouée d'autant que ça résoud pas le problème.
A voir également:

2 réponses

lof. Messages postés 689 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 11 juin 2007 44
8 janv. 2004 à 11:39
Bonjour,

Je croie qu'il y a plusieurs thread à ce sujet :

http://www.commentcamarche.net/forum/affich-271409-%5BJava%5D-Alocation-de-m%E9moire

je ne trouve plus les autres ...

arrffff
lof.
0
Merci pour la réponse mais c'est pas ça,

J'ai bien consulté déjà les forums mais à chaque fois on revient au GC, on ne joue pas dans la même cours, quand il s'agit de petits progs et l'on perd quelques ko c'est pas trop grave, le miens ça fait deux ans que je travaille dessus, il demande plus de 140Mo au démarrage, une fois vidés, les thread demandent moins, mais les petits threads qui tournent en tache de fond mangent quelques octets à chaque fois, ce n'est pas un thread qui en mange mais une dizaines ces octets sont multipliés par 10!

on peut pas parler non plus de mauvaise gestion de la mémoire, parceque un simple timer qui demande rien non plus grapille quelques octets.

Je pense qu'il doit y avoir un autre moyen de vider toute la mémoire en dehors du ramasse miette! il porte bien son nom, c'est pas un ramasse miette qu'il faut!

Le principe de ramasse miette est simple, un objet qui n'est plus utilisé est supprimé de la mémoire, le ramasse miette récupère cette mémoire mais pas tout! et ça jamais.
Comme je le dsais avant quant les objets employés ne sont que quelques un ça va, quand ils se comptent en centaine octetc après octet....

L'idée du GC est une chose, c'est pas la solution définitive. Pour compenser, pour l'instant j'utilise le solution brute de fonderie, je relance l'application par un getRuntime.exec()... mais c'est pas propre!
0