[JAVA] garbage collector

garbage collector [JAVA] - Programmation

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 ????

Reply

Marsh Posté le 05-04-2002 à 19:36:46   

Reply

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

Reply

Marsh Posté le 05-04-2002 à 19:40:18    

OK, merci...
je voulais eviter de foutre des =null partout pour rien...

Reply

Marsh Posté le 05-04-2002 à 19:41:57    

pour rien en effet

Reply

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]

Reply

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 ?

Reply

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

Reply

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 ?

Reply

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

Reply

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.

Reply

Marsh Posté le 05-04-2002 à 22:12:55   

Reply

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]

Reply

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.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed