IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Framework .NET Discussion :

[Garbage Collector] Est-il "intelligent" ou ne l'est-il pas ?


Sujet :

Framework .NET

  1. #1
    Membre actif Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Points : 248
    Points
    248
    Par défaut [Garbage Collector] Est-il "intelligent" ou ne l'est-il pas ?
    Bonjour,

    voilà, je me demandais si ce code est sur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    List<Profil> theliste = new List<Profil>();
                Profil theprofil;
     
                for (int i = 0; i < 5; i++)
                {
                    theprofil = new Profil();
                    theprofil._Label = "label" + i.ToString();
     
                    theliste.Add(theprofil);
                }
    Après la boucle, la liste contient bien les références sur les instances de Profil, cependant la variable locale theprofil est réaffectée à chaque tour de boucle.

    Ma question est donc la suivante : vu que theprofil est réaffecté, est-ce que les anciennes références sont marquées comme à collecter par le ramasse-miette? ou alors il est intelligent, et il sait que des références sont encore utilisées dans la liste, et dans ce cas le code précédent est 'sur' ?

  2. #2
    Membre émérite
    Avatar de SpiceGuid
    Homme Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 704
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 704
    Points : 2 990
    Points
    2 990
    Par défaut
    ou alors il est intelligent, et il sait que des références sont encore utilisées dans la liste
    Il est "intelligent" dans le sens où tant qu'il existe une référence il ne libère pas

    Par contre il est "idiot" dans le sens où tant que tu ne supprime pas toutes les références il ne peut te rendre aucune mémoire, même si tu n'utilise plus jamais lesdites références.

  3. #3
    Membre actif Avatar de gdkenny
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 251
    Points : 248
    Points
    248
    Par défaut
    Donc c'est bon, je peux mettre un code de ce genre en production. Je voulais être sur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/03/2011, 23h41
  2. Le Garbage collector est-il fait pour cela ?
    Par macRiaz dans le forum Android
    Réponses: 16
    Dernier message: 24/02/2010, 00h01
  3. C'est quoi un Garbage collector ?
    Par Emilewawal dans le forum C#
    Réponses: 3
    Dernier message: 27/03/2008, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo