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

C++/CLI Discussion :

[general] differences entre les differentes heap


Sujet :

C++/CLI

  1. #1
    Membre confirm� Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par d�faut [general] differences entre les differentes heap
    Bonjour,
    je voulais avoir une petite explication sur les differentes piles utilises par la CLR

    en effet j'ai compris un peu (j'espere)
    la managed heap : c'est la ou sont alloues tout les objets references cree par gcnew ( la je n'ai pas de confusion)
    j'ai plus confusion entre le stack et la CRT
    est-ce que sur la CRT sont alloues tout les objet references crees par new? (seulement), et le stack il n'a que les object value

    et est-ce la CLR alloue un espace managed heap pour chaque process?
    ou c'est une espace commun a toutes les application utilisant la CLR?
    et est-ce que c'est la meme chose pour les autres piles?

    Merci

  2. #2
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    La CRT n'est pas une zone m�moire, mais la biblioth�que standard (C Run-Time Library)
    Et surtout, un tas (heap) est TOUT SAUF une pile (stack)
    • Managed heap : C'est le tas manag�, o� se trouvent en effet tous les objets de type r�f�rence.
    • CRT Heap : Tas non-manag� de la CRT : Objets cr��s par new (et en C, zones m�moires allou�es par malloc()).
    • Stack : Pile, contient toutes les variables locales des fonctions : Types valeur et r�f�rences vers des objets de type r�f�rence.
      Il y a une pile par thread.
    • Pour les variables static/shared, je ne sais pas o� elles sont mises en Manag�. Mais en non-manag�, c'est simplement dans la "zone de donn�es statiques".

    Et pour information, il y a un process pour chaque programme .Net lanc�, donc les donn�es manag�es sont isol�es (enfin j'esp�re, car les partager en interne serait vraiment d�bile).
    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.

  3. #3
    Membre confirm� Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par d�faut
    Citation Envoy� par M�dinoc
    Et pour information, il y a un process pour chaque programme .Net lanc�, donc les donn�es manag�es sont isol�es (enfin j'esp�re, car les partager en interne serait vraiment d�bile).
    Merci Medinoc.
    juste pour le dernier point, je crois que avec .Net, on peut avoir un seul process pour plusieurs application, mais chaque application a son Application domain, non?

    pas defaut oui , on a un process pour chaque application et donc un seul AppDomain
    mais on peut demander au CLR de creer un seul process, et dedans creer plusieur APPDomain, et je voudrai bien voir comment est gerer la memoire comme cela

    Merci

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    D�sol�, je ne sais pas ce que sont les AppDomain. C'est un concept .Net ?

    Au niveau process, je ne connais que Fiber ∈ Thread ∈ Process ∈ Job.
    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. #5
    Membre confirm� Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par d�faut
    Citation Envoy� par M�dinoc
    D�sol�, je ne sais pas ce que sont les AppDomain. C'est un concept .Net ?

    Au niveau process, je ne connais que Fiber ∈ Thread ∈ Process ∈ Job.
    oui c'est un concept du framework
    deja il y'avait un probleme pour un singleton d'une classe, car c'est un singleton au sein d'une AppDomaine, et pas du processus

    http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx
    tu peux voir ce lien si tu veux
    ou
    http://msdn2.microsoft.com/en-us/library/dah4cwez.aspx
    merci

  6. #6
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Ah oui, je viens de jeter un coup d'oeil.

    Si j'ai bien compris, un process peut en effet contenir plusieurs applications, chacune dans son AppDomain, mais seulement si elles sont type-safe (ce qui selon moi signifie "En C# sans zones 'unsafe' ou en C++/CLI compil� avec /clr:safe", sachant que pour le VB je ne sais pas).
    Cela doit vouloir dire qu'une application unsafe est toujours lanc�e dans un nouveau processus.

    Mais apparemment, on ne peut pas cr�er deux applications dans le m�me AppDomain.

    on peut demander au CLR de creer un seul process, et dedans creer plusieur APPDomain, et je voudrai bien voir comment est gerer la memoire comme cela
    Si j'ai bien compris, la m�moire est partag�e (car ce n'est toujours qu'un seul process), mais le CLR s'assure qu'aucun AppDomain ne touche � la m�moire du voisin.
    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.

  7. #7
    Membre confirm� Avatar de deeal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    218
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 218
    Par d�faut
    Citation Envoy� par M�dinoc
    Si j'ai bien compris, la m�moire est partag�e (car ce n'est toujours qu'un seul process), mais le CLR s'assure qu'aucun AppDomain ne touche � la m�moire du voisin.
    et donc la difference entre AppDomain est Thread, ce n'est pas de le partage memoire, car les thread aussi partagent la memoire
    Merci Medinoc
    je crois que j'ai bien compris la difference entre la CRT heap, managed et le stack

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. la difference entre les deux code
    Par infoelectronique dans le forum AWT/Swing
    R�ponses: 2
    Dernier message: 17/07/2008, 08h08
  2. difference entre les distributions
    Par dev0077 dans le forum Distributions
    R�ponses: 1
    Dernier message: 09/10/2007, 19h34
  3. R�ponses: 5
    Dernier message: 26/09/2006, 23h04
  4. difference entre les 3 versions de xmi
    Par nabdoun dans le forum Outils
    R�ponses: 1
    Dernier message: 16/01/2006, 15h50
  5. difference entre les edi
    Par Trust_ dans le forum D�bats sur le d�veloppement - Le Best Of
    R�ponses: 44
    Dernier message: 02/06/2004, 19h18

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