Maison >développement back-end >Tutoriel C#.Net >Gestion de la mémoire C#

Gestion de la mémoire C#

黄舟
黄舟original
2017-02-15 11:52:281653parcourir

Windows utilise un système : le système d'adressage virtuel, qui mappe les adresses mémoire disponibles pour le programme aux adresses réelles dans la mémoire matérielle. Ces tâches sont entièrement gérées par Windows en arrière-plan. . Le résultat net est que chaque processus sur un processeur 1 bit peut utiliser 4 Go de mémoire, quelle que soit la quantité d'espace disque réellement disponible sur l'ordinateur (sur un processeur 64 bits, ce nombre sera plus grand). la mémoire contient en fait toutes les parties du programme, y compris le code exécutable, toutes les DLL chargées et le contenu de toutes les variables utilisées lors de l'exécution du programme. Ces 4 Go de mémoire sont appelés espace d'adressage virtuel, ou mémoire virtuelle <.>

Chaque unité de stockage en 4 Go est triée à partir de 0 et en montant. Pour accéder à une valeur stockée dans un certain espace en mémoire, vous devez fournir un numéro représentant l'unité de stockage dans n'importe quel langage complexe de haut niveau, Comme VB, C# et Java, le compilateur est chargé de convertir les noms de variables que les humains peuvent comprendre en adresses mémoire que le processeur peut comprendre.

Dans la mémoire virtuelle du processus, il y a une zone appelée la pile. stocke les types de données de valeur qui ne sont pas des membres d'objet. De plus, lorsqu'une méthode est appelée, la pile est également utilisée pour stocker une copie de tous les paramètres transmis à la méthode

Pointeur de pile (une variable maintenue par le système d'exploitation représentant l'adresse de la prochaine unité de stockage libre dans la pile. Le programme démarre pour la première fois Au moment de l'exécution, le pointeur de pile pointe vers le fin du bloc de mémoire réservé à la pile. La pile est en fait remplie vers le bas, c'est-à-dire que lorsque les données sont poussées sur la pile, le pointeur de la pile sera ajusté en conséquence vers le prochain emplacement mémoire libre. Cette situation est illustrée dans la figure. 13-1 Dans cette figure, le pointeur de pile 8O000 (HexC3500) est affiché et le prochain emplacement mémoire libre est l'adresse 799999. 🎜>

Notez que contrairement à la pile, la mémoire sur le tas est allouée vers le haut, donc l'espace libre est au-dessus de l'espace utilisé 🎜>
<.>

Compilé à partir de : Programmation avancée C#

Ce qui précède est le contenu de la gestion de la mémoire C#. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn)

!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn