Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2125 connectés 

 


Dernière réponse
Sujet : [JAVA] garbage collector
lorill

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.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
lorill

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.

HappyHarry 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]

lorill

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.

HappyHarry

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

benou

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 ?

HappyHarry

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

benou

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 ?

matafan 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]

HappyHarry pour rien en effet
fucky_fuck OK, merci...
je voulais eviter de foutre des =null partout pour rien...
HappyHarry la derniere solution suffit
quand plus aucun pointeur ne fait reference a une zone memoire, le GC vire
fucky_fuck 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 ????

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)