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

  FORUM HardWare.fr
  Programmation
  Java

  [java] détruire un objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java] détruire un objet

n°730530
ohan
Posté le 18-05-2004 à 17:01:15  profilanswer
 

Bonjour,
je voudrais savoir s'il est possible de détruire un objet qui ne me sert plus (pour ne pas gaspiller la mémoire);
 
Merci pour vos conseils
++

mood
Publicité
Posté le 18-05-2004 à 17:01:15  profilanswer
 

n°730533
lorill
Posté le 18-05-2004 à 17:04:57  profilanswer
 
n°730605
R3g
fonctionnaire certifié ITIL
Posté le 18-05-2004 à 18:18:47  profilanswer
 

en gros les objets qui ne sont plus référencés sont detruits par le garbage collector. Pour détruire un objet, il te suffit de mettre toutes ses références à null.

n°730645
_guigui_
Posté le 18-05-2004 à 18:52:33  profilanswer
 

heu oui mais ca n'est pas forcément une trés bonne idée...
imagines tu as une List qui contient 10.000 objets, il faudrait parser toute la liste pour mettre chaque objet à null, ca va être trés lent! :ouch:  
Dans les dernières versions de JVM, ca n'est pas recommandé. Le cout d'allocation est trés faible, et le garbage collector est beaucoup plus efficace qu'avant, il vaut mieux lui laisser faire le travail tout seul.
Mieux vaut mettre ses efforts dans le tuning de la JVM...

n°730648
R3g
fonctionnaire certifié ITIL
Posté le 18-05-2004 à 18:54:56  profilanswer
 

_guigui_ a écrit :

heu oui mais ca n'est pas forcément une trés bonne idée...
imagines tu as une List qui contient 10.000 objets, il faudrait parser toute la liste pour mettre chaque objet à null, ca va être trés lent! :ouch:  
Dans les dernières versions de JVM, ca n'est pas recommandé. Le cout d'allocation est trés faible, et le garbage collector est beaucoup plus efficace qu'avant, il vaut mieux lui laisser faire le travail tout seul.
Mieux vaut mettre ses efforts dans le tuning de la JVM...

ben si il reste une référence vers ton objet qui n'est pas null, le garbage collector le détruira pas.

n°730664
the real m​oins moins
Posté le 18-05-2004 à 19:18:09  profilanswer
 

_guigui_ a écrit :

heu oui mais ca n'est pas forcément une trés bonne idée...
imagines tu as une List qui contient 10.000 objets, il faudrait parser toute la liste pour mettre chaque objet à null, ca va être trés lent! :ouch:  

non, et puis tu fous la liste à null, et hop.
de toutes façons, effectivement ça ne sert pas à grand chose de faire ça. si tu codes proprement ça doit etre rarement necessaire....


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°730678
ohan
Posté le 18-05-2004 à 19:40:07  profilanswer
 

merci bien, je vais le mettre à null.
Faut-il que j'appelle la Garbage Collector (system.gc() ou elle est appellée tte seule) ?
Pour mettre à null mon objet, je dois faire : monInstance = (montype)null ?
 
Merci
++

n°730681
gfive
Posté le 18-05-2004 à 19:41:01  profilanswer
 

PAs la peine d'appeller le GC, normalement, il se débrouille très bien tout seul.
Sinon, monInstance = null suffit.

n°730683
ohan
Posté le 18-05-2004 à 19:44:14  profilanswer
 

merci, je testerais demain à la fac
++

n°730685
lorill
Posté le 18-05-2004 à 19:46:17  profilanswer
 

ohan a écrit :


Faut-il que j'appelle la Garbage Collector (system.gc() ou elle est appellée tte seule) ?


non seulement tu n'a pas besoin de l'appeler, mais c'est en plus fortement déconseillé, sauf cas particulier

mood
Publicité
Posté le 18-05-2004 à 19:46:17  profilanswer
 

n°730871
Jubijub
Parce que je le VD bien
Posté le 18-05-2004 à 22:59:22  profilanswer
 

ouuaip j'avais lu un article d'IBM là dessus sur developerworks...le gars recommandait de pas toucher au GC


---------------
Jubi Photos : Flickr - 500px
n°731031
ohan
Posté le 19-05-2004 à 09:14:58  profilanswer
 

lorill a écrit :

non seulement tu n'a pas besoin de l'appeler, mais c'est en plus fortement déconseillé, sauf cas particulier


ok mais c'est quoi les cas particuliers (juste pour info)?

n°731202
pascal34
one point !
Posté le 19-05-2004 à 11:30:08  profilanswer
 

De toute façon, mettre les références à null ne garantie pas que le garbage collector va détruire les objets associés.
Si ton appli n'a pas besoin de plus de mémoire, tes objets ne seront détruis qu'à la fermeture de l'application.

n°731206
_guigui_
Posté le 19-05-2004 à 11:32:54  profilanswer
 

ben le problème avec System.gc(), c'est que ca lance un garbage collector global, ca va donc prendre beaucoup plus de temps que si tu avais laissé la JVM gérer toute seule (il y a plusieurs niveaux de garbage collector)

n°731366
pascal34
one point !
Posté le 19-05-2004 à 13:03:47  profilanswer
 

Exact, si Java, possède un mécanisme de gestion automatique de la mémoire, c'est pas pour qu'on essai de gérer lé mémoire nous même. Si pour toi la gestion mémoire est très critique, il vaut mieux faire ça en C++ ou Delphi ou tout autre langage non géré.
 
Le code géré a ses avantages et ses inconvénients comme toute chose  :D

n°731630
nraynaud
lol
Posté le 19-05-2004 à 15:43:38  profilanswer
 

ohan a écrit :

ok mais c'est quoi les cas particuliers (juste pour info)?

quand l'utilisateur a le dos tourné : au moment de la mise en veille, ou en fin de traitement bloquant l'application. Si on sait que ça vaut le coup.


---------------
trainoo.com, c'est fini
n°731663
the real m​oins moins
Posté le 19-05-2004 à 15:53:34  profilanswer
 

nraynaud a écrit :

quand l'utilisateur a le dos tourné : au moment de la mise en veille, ou en fin de traitement bloquant l'application. Si on sait que ça vaut le coup.

tain, il faut webcam + detection de mouvement pour collecter le garbage, pas étonnant qu'on dise que java soit lent [:itm]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°732451
tuxbleu
renie ses origines
Posté le 20-05-2004 à 01:19:48  profilanswer
 

the real moins moins a écrit :

tain, il faut webcam + detection de mouvement pour collecter le garbage, pas étonnant qu'on dise que java soit lent [:itm]


 
 :lol:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java] détruire un objet

 

Sujets relatifs
[php] Enregistrer un objet[java] comment recupérer une page html online dans une application ?
Console java dans un appletpb dimensionnement de composant en java
Bitos Java [applet - Php]Impression Avec Java
Objet a conservé avec methoe post.SVG / Java / Batik -> retour d'expériences...
java et les guillemtJava stored procedure
Plus de sujets relatifs à : [java] détruire un objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR