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

Débats sur le développement - Le Best Of Discussion :

Pour ou Contre le Garbage Collector ?


Sujet :

Débats sur le développement - Le Best Of

  1. #261
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par millie Voir le message
    Attention, il ne faut pas imaginer que si l'on demande d'allouer 3 octet au GC via un new, il va faire un malloc à chaque coup. L'allocation est différente qu'en C ou qu'en C++ (avec les opérateurs classiques non modifiés)
    ha bon alors comment il fait?

    tu veux dire qu'il ne demande pas au system, il alloue plein de memoire au debut pour eviter cela, oui mais que cela change-t-il à la fin? (à part une allocation et deallocation plus rapide) en terme de memoire utilisée?

  2. #262
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    voila, c'est evident que une allocation sur le tas pour chaque objet.... ca fait mal mais point de salut
    Tu veux les mettres où, sur la pile ? Faut arrêter, un langage avec GC ne fais pas un malloc à chaque nouvelle objet... Y a pas de nécessité à prendre plus de place sous prétexte que tu as un GC.


    et surtout un GC se justifie-t-il dans ces conditions?
    un model contient les faces, edges, vertices alors pas de ref circulaire, rien du tout, juste un destructeur qu'il faut implementer.... et c'est souvent comme ca.
    Imaginons maintenant que tu aies une forme, et que tu la répètes à plusieurs endroit. Avec un peu de chance, tu peux faire du partage habile, et là "juste un destructeur" ne marche plus (oui, un smart_pointeur devrait le faire)

  3. #263
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    ha bon alors comment il fait?

    tu veux dire qu'il ne demande pas au system, il alloue plein de memoire au debut pour eviter cela, oui mais que cela change-t-il à la fin? (à part une allocation et deallocation plus rapide) en terme de memoire utilisée?
    Ca dépend des GC. Le GC d'Ocaml (niveau allocation je parle) va être assez différent du GC de Java par exemple.

    En java du moins, ça ressemble à une allocation sur la pile, (il y a un pointeur sur le tas qui est simplement déplacé :
    http://bruce-eckel.developpez.com/li...e=chap4#L4.3.4 )
    Je ne répondrai à aucune question technique en privé

  4. #264
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais ça reste, pour chaque objet, au moins 4 octets supplémentaires pour les informations de RTTI, et un niveau d'indirection supplémentaire.

    Imaginons une classe Point avec juste deux entiers (x, y), aucune fonction virtuelle (une simple structure de stockage). Voyons ce que ça donne dans un tableau:

    En C++, un pointeur --->
    • objet Point de taille 8 à ptr+0
    • objet Point de taille 8 à ptr+1
    • objet Point de taille 8 à ptr+2

    En java, un tableau d'objets, référence vers le tableau --->
    • Référence de type du tableau
    • tableau[0] = Référence vers objet Point --->
      • objet Point de taille au moins 12
    • tableau[1] = Référence vers objet Point --->
      • objet Point de taille au moins 12
    • tableau[2] = Référence vers objet Point --->
      • objet Point de taille au moins 12
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #265
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Mais ceci n'est pas en soi un problème dû au garbage collector: Je suis sûr qu'en .Net on peut parvenir à des performances mémoire voisines du C++, puisqu'en .Net on a droit aux "types valeurs", qu'on peut mettre dans un tableau.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #266
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    tableau[0] = Référence vers objet --->
    • objet de taille au moins 12
    Je ne comprend pas bien. C'était pas des entiers dans ta structure ? Un entier de type int en java n'est pas un objet. Ou bien, quelque chose m'a échappé.
    Je ne répondrai à aucune question technique en privé

  7. #267
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    el_slapper, je pense que tu as soulevé un point intéressant au sujet des formations, mais attention à 3 autres éléments :
    - tous les développeurs n'ont pas une formation de développeur. Il n'est pas rare d'avoir des ingénieurs formés relativement à un métier qui se retrouvent à développer dans des équipes où pendant ce temps des développeurs de formations découvrent le métier.

    - même quand on est bien formés et super douées, nous restons des humains et on a vite fait d'oublier une désallocation suite à une soirée trop arrosée, ou une nuit trop courte, ou des interruptions répétées par le client, ou ...

    - les erreurs. Gérer correctement les cas non nominaux est le détail qui change toute la donne. Faire ça à la main et de façon maintenable relève de l'impossible. Même des développeurs de formation sont (généralement?) incorrectement formés à cela. D'autant que cela n'a pas du tout la même criticité selon les applications. Les GC sont une solution partielle à ce problème.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  8. #268
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par millie Voir le message
    Je ne comprend pas bien. C'était pas des entiers dans ta structure ? Un entier de type int en java n'est pas un objet. Ou bien, quelque chose m'a échappé.
    Ça t'a bien échappé, mais je viens de clarifier mon message pour que ça n'échappe plus à personne.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #269
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Ça t'a bien échappé, mais je viens de clarifier mon message pour que ça n'échappe plus à personne.
    Ah oui, le mot "tableau" m'avait échappé. C'était pour ça
    Je ne répondrai à aucune question technique en privé

  10. #270
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Mais ceci n'est pas en soi un problème dû au garbage collector: Je suis sûr qu'en .Net on peut parvenir à des performances mémoire voisines du C++, puisqu'en .Net on a droit aux "types valeurs", qu'on peut mettre dans un tableau.
    oui mais plus d'heritage ... et plein d'inconvenients, ce n'est pas un objet donc plein de boxing / unboxing

  11. #271
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    ce n'est pas un objet donc plein de boxing / unboxing
    Seulement si tu cherches à le traiter comme un objet. Si, au lieu de chercher à l'identifier par un simple pointeur, tu l'identifies par tableau+index, pas de boxing à l'horizon. Pareil si tu le passes par référence (encore un truc que Java ne sait pas faire) à une fonction...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #272
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Tu veux les mettres où, sur la pile ? Faut arrêter, un langage avec GC ne fais pas un malloc à chaque nouvelle objet... Y a pas de nécessité à prendre plus de place sous prétexte que tu as un GC.
    je ne suis pas d'accord!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    class Triangle {
    private:
      Plane p1, p2, p3 // ou Plane boundaries[3]
      Plane face;
      Normal n;
    };
    tu vois je n'ai pas de pointeurs à l'interieur de mon triangle
    cela me prend donc:
    1 plane = 4 doubles = 32 octets
    1 normal = 3 doubles = 24 octets

    donc 3*32 + 1*32 + 1*24 = 152 octets

    et en Java ?

    Citation Envoyé par alex_pi Voir le message
    Imaginons maintenant que tu aies une forme, et que tu la répètes à plusieurs endroit. Avec un peu de chance, tu peux faire du partage habile, et là "juste un destructeur" ne marche plus (oui, un smart_pointeur devrait le faire)
    je n'ai aucun probleme, les references circulaires sont tres tres rares, et dans ce cas que tu cites j'ai no problemo, c'est un cas somme toute assez trivial, il suffirait de donner la responsabilité de destruction à un objet separé de cette fameuse liste... meme pas forcement besoin de smart-pointer

  13. #273
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Seulement si tu cherches à le traiter comme un objet. Si, au lieu de chercher à l'identifier par un simple pointeur, tu l'identifies par tableau+index, pas de boxing à l'horizon. Pareil si tu le passes par référence (encore un truc que Java ne sait pas faire) à une fonction...
    c'est pas le but d'etre objet dans un langage objet?

    vouloir traiter des cas a part, c'est des problemes à gerer pour plus tard. Ces structures dans C# sont merdiques, ils auraient mieux fait d'etre consistent, d'ameliorer la gestion memoire des objets plutot que d'inventer encore un nouveau type :-/

    J'avais vu dans Java 3d, la lib Vecmath leur optimisation avait consisté à mettre non pas des objets points dans les plans mais le contenu (des doubles ou float) ... c'est ce genre d'optimisation que vous voulez en Java?

  14. #274
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 206
    Points : 849
    Points
    849
    Par défaut
    A mon avis, une "déstruction" déterministe et l'utilisation d'un GC ne devrait pas être opposés. En effet, le rôle du GC est de gérer la mémoire, pas celui de gérer n'importe quelle resource partagée. Si une classe représente une resource partager, il est selon moi plus correcte d'avoir des métodes du genre "open/close" ou "connect/disconnect", plutôt de de lier ces actions uniquement à la construction et à la desctruction des objets - même si c'est sans aucun doute une bonne idée de relacher la resource partagée à la destruction de l'objet.

  15. #275
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Le problème de java, c'est justement qu'on se retrouve à payer pour de l'objet même dans les cas où l'on n'a pas besoin d'objet.
    Le C++ est excellent pour éviter de payer pour ce qu'on n'utilise pas, et les value types de .Net sont un bon compromis pour les POD, même s'ils n'ont pas toutes les fonctionnalités qu'on pourrait vouloir.

    Edit: J'en profite pour rajouter cet article sur la philosophie des types valeurs en .Net : http://blogs.msdn.com/slippman/archi...13/131225.aspx
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #276
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    de nos jours c'est quand meme tres dure d'oublier un delete.

    les seules fois ou j'en fais c'est dans les destructeurs...
    sinon c'est tres tres tres rare...

  17. #277
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par epsilon68 Voir le message
    de nos jours c'est quand même très dur d'oublier un delete.

    les seuls fois ou j'en fais c'est dans les destructeurs...
    sinon c'est tres tres tres rare...
    Parce que le langage que nous utilisons nous permet de ne pas en écrire (ou du moins le moins possible) et sans provoquer la moindre fuite.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  18. #278
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Le problème de java,[...]
    Java n'est pas la panacée des GC surtout -_-
    Il y a mieux.

  19. #279
    Membre expérimenté Avatar de davcha
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 258
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 258
    Points : 1 539
    Points
    1 539
    Par défaut
    Citation Envoyé par souviron34 Voir le message
    Ceci est un problème de conception et non de langage ou de "feature" du langage.

    Que ce soit "aucune abstraction au niveau de la source de données" ou "la source de données n'est plus une base de données", c'est indépendant du langage et fait partie de l'analyse (mauvaise) des concepteurs...

    [...]

    Tu ne me convaincs pas avec tes arguments car ce que tu montres sont des problèmes de conception.


    Si n'importe qui pense qu'il peut faire un bon programme, tant pis pour lui et ceux qui l'emploient..


    Et c'était exactement le sens de ma remarque initiale...
    Ca tombe bien que tu parles de "mauvaise conception" (en fait j'espérais que tu allais en parler).
    En gros, l'idée est que si tu réalises un programme qui a pour but d'effectuer le travail A, tu souhaites que la majorité du code du programme en question soit du "A" et pas un aspect technique B, C ou D.
    Je suis peut-être pas très clair...

    Reprenons l'histoire de notre programme de gestion avec une base de données ou un service web derrière.
    Si ton appli de gestion traite des fleurs sauvages et de leurs relations avec les ours et la pollution, tu veux que la majorité du code soit relatif aux fleurs, aux ours et à la pollution.
    Inversement, tu souhaites éviter un maximum toute référence à des librairies techniques, par exemple.

    Tu vas me dire que la gestion de la mémoire, ce n'est pas une librairie technique, et tu auras raison. Par contre, si dans ton code tu as à tout bout de champ des tas d'allocations mémoires (même bien foutues, hein, je parle pas d'une allocation mémoire dans une triple boucle imbriquée, par exemple), ça "pollue" ton code.
    Toutes ces allocations mémoires sont du ressort de l'ordinateur, ça n'a rien à voir avec la logique qui régit les fleurs sauvages, les ours et la pollution.
    Ca pollue, donc. Et par conséquent, rend ton code moins lisible, plus difficile à maintenir, etc...

    Alors, maintenant, GC ou pas GC, c'est un peu une autre histoire à la limite.
    Il me semble que c'est Luc qui a parlé d'avoir des smart_pointers (ou autres) aussi invisibles que possible.

    D'après moi, l'idéal est de savoir comment ça marche derrière, mais de voir cette mécanique le moins possible.

    Citation Envoyé par Médinoc Voir le message
    Mais ceci n'est pas en soi un problème dû au garbage collector: Je suis sûr qu'en .Net on peut parvenir à des performances mémoire voisines du C++, puisqu'en .Net on a droit aux "types valeurs", qu'on peut mettre dans un tableau.
    On peut faire un stackalloc et un autre truc dont je me sers si peu souvent que j'ai oublié comment ça s'appelait. Ca permet d'avoir la même chose qu'un tableau initialisé sur la pile en C++. Ca nécessite de créer un type valeur particulier pour contenir le truc, par contre.

    Ceci dit, tout ça c'est unsafe.

  20. #280
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par davcha Voir le message
    Il me semble que c'est Luc qui a parlé d'avoir des smart_pointers (ou autres) aussi invisibles que possible.
    J'ai dit toutes sortes de choses. Mais la seule qui pourrait se rapprocher c'est que je concédais que les smart_pointeurs du C++ étaient un chouilla verbeux (si non aliasés par des typedef). Ou alors que gérer des ressources brutes (pas juste la mémoire) au milieu d'un code où il fallait anticiper les cas non nominaux relève de l'impossible. Et que ce que je ne veux pas voir ce sont des if(ok)-else et autres try-finally à n'en plus finir.

    Maintenant, quelle est l'importance de la gestion des insectes et pesticides, et autres brebis et éleveurs dans ton modèle de fleurs et d'ours ?
    OK, l'analogie est pourrie. Le truc est que les cas non nominaux relèvent aussi du métier, et vont concerner des ressources métier qu'il faut aussi gérer correctement. Et je ne veux pas plus me poser de questions au sujet de la mémoire que des autres ressources, métiers (pots de bladan et autres insecticides à refermer et ranger après utilisation) ou non (i.e. plus techniques comme des connexions DB, sockets, mémoire, etc), que je pourrais être appelé à manipuler.


    Donc (comme je le disais il y a des pages et des pages de cela) les GC, pourquoi pas, mais je veux plus. Et tous les GC ne me l'offrent pas -- du moins ceux des langages qui sont en directe concurrence avec celui que j'utilise professionnellement aujourd'hui. (je fais ce que je peux pour éviter le troll langage, mais ce n'est pas facile vu que les qualités des GC varient d'un langage à l'autre, de même que les techniques plus ou moins alternatives, cf les digressions récentes)
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Garbage collector en C++, pour ou contre ?
    Par Klaim dans le forum C++
    Réponses: 70
    Dernier message: 05/08/2010, 14h03
  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. Réponses: 12
    Dernier message: 29/06/2009, 07h20
  4. Réponses: 1
    Dernier message: 03/06/2009, 00h25

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