garbage collector [JAVA] - Programmation
Marsh Posté le 05-04-2002 à 19:38:58
la derniere solution suffit
quand plus aucun pointeur ne fait reference a une zone memoire, le GC vire
Marsh Posté le 05-04-2002 à 19:40:18
OK, merci...
je voulais eviter de foutre des =null partout pour rien...
Marsh Posté le 05-04-2002 à 19:45:50
Le seul cas où ça peut être utile de faire des « = null » explicites, c'est quand tu as de grosses structures d'objets chainées que tu n'utilises plus. Ca peut aider le GC se rendre compte que ces objets ne sont plus utilisés.
[jfdsdjhfuetppo]--Message édité par matafan--[/jfdsdjhfuetppo]
Marsh Posté le 05-04-2002 à 21:57:54
matafan a écrit a écrit : Le seul cas où ça peut être utile de faire des « = null » explicites, c'est quand tu as de grosses structures d'objets chainées que tu n'utilises plus. Ca peut aider le GC se rendre compte que ces objets ne sont plus utilisés. |
t'es sur de ce que tu dis ?
Marsh Posté le 05-04-2002 à 21:59:37
benou a écrit a écrit : t'es sur de ce que tu dis ? |
a priori chuis plutot d'accord paske le GC est un peu long a la detente dans ces cas la
Marsh Posté le 05-04-2002 à 22:03:10
tomiotomio a écrit a écrit : oui oui il a raison |
ben j'ai appris un truc alors.
Vous connaissez la raison métphysique qui fait que ca le rend plus rapide à se déclencher ?
Marsh Posté le 05-04-2002 à 22:08:43
benou a écrit a écrit : ben j'ai appris un truc alors. Vous connaissez la raison métphysique qui fait que ca le rend plus rapide à se déclencher ? |
sans doute un ptit lutin qui fait : "hé ho ! le gars a mis un pointeur a null, fais ton boulot feignasse de GC !"
sinon, ben ... sans doute un truc dans le style, mais sans le ptit lutin
Marsh Posté le 05-04-2002 à 22:12:55
HappyHarry a écrit a écrit : sans doute un ptit lutin qui fait : "hé ho ! le gars a mis un pointeur a null, fais ton boulot feignasse de GC !" sinon, ben ... sans doute un truc dans le style, mais sans le ptit lutin |
pas tout a fait, non.
sinon on apelerai System.gc() a bout de bras, et le principe d'un gc est de ne pas avoir a l'appeler, justement.
c'est plus dans le cas des references cycliques (style a pointe vers b, b pointe vers c, c pointe vers a) si c devient null, comment savoir si la strucutre doit tomber ou pas ? ben tu mets les deux autres a null.
maintenant, je viens peut-etre de dire une betise enooorme, mais c'est comme ca que je vois la chose.
Marsh Posté le 05-04-2002 à 22:14:53
bon j'avoue g ptet un peu exagéré ...
mais en fait je pensais que peut etre il y aurait un mecanisme qcq qui ferait que quand on affecte directement null a un pointeur, le gc vient faire un peu de menage ... (mais c sans doute tres naif)
[jfdsdjhfuetppo]--Message édité par HappyHarry--[/jfdsdjhfuetppo]
Marsh Posté le 05-04-2002 à 22:16:25
HappyHarry a écrit a écrit : bon j'avoue g ptet un peu exagéré ... mais en fait je pensais que peut etre il y aurait un mecanisme qcq qui ferait que quand on affecte directement null a un pointeur, le gc vient faire un peu de menage ... (mais c sans doute tres naif) |
j'espere honnetement que ce n'est pas le cas, mais comme Java n'est pas trop mal foutu, je pense qu'ils ont du eviter ce genre de bidouille.
Marsh Posté le 05-04-2002 à 19:36:46
Bon alors, si j'ai bien compris, l'équivalent de
int * tab = new int [400];
...
delete [] tab;
tab=new int [500];
en JAVA donne :
int [] tab = new int [400];
...
tab=null; -> là le GC fait son office...
tab=new int [500];
ou bien est ce que
int [] tab = new int [400];
...
tab=new int [500];
suffit ????