Gestion de la mémoire vive en .NET

Cours gestion de la mémoire vive en .NET, tutoriel & guide de travaux pratiques en pdf.

Gestion de la mémoire vive en .NET

Pour comprendre un peu mieux certains phénomènes qui seront abordés plus tard, nous allons expliquer rapidement la gestion de la mémoire par le .NET framework. La mémoire est un point essentiel pour pouvoir faire de la logique. Retenir des résultats intermédiaire pour les réutiliser ou autres. Pour enregistrer temporairement une valeur lui donne un nom. Ce nom sera utilisé comme un lien vers un espace mémoire. Cette association nom, espace mémoire et donnée contenue est un tout que l’on appelle variable. Dans certains langages de programmation comme le C, le C++ ou le C# nous avons des « variables liens ». Ces variables contiennent l’adresse d’une donnée qui éventuellement pourrait ne pas être nommée. Ces variables liens sont en réalité appelées pointeurs, elles sont souvent cachées dans le .NET bien qu’elles soient utilisées au cœur du framework.
.NET sépare la mémoire en deux parties isolées, la pile et le tas. Quand on fait un programme en .NET, le framework nous réserve un espace mémoire. Les autres programmes ne peuvent normalement pas y accéder. Les données dites « type valeur » sont celles qui ont leurs valeurs dans la pile. Les variables de type valeur sont le plus souvent inferieure à 32 octets. Bien que performant pour les petites variables le type valeur est complété par un autre type : le type référence. Les variables de type référence ont un pointeur enregistré dans la pile qui pointe vers les données de la variable. Ces données sont dans la zone mémoire appelée le tas.
Un outil appelé « Garbage Collector » est chargé de libérer et défragmenter dynamiquement la mémoire du tas. Ainsi, si des données n’ont plus de pointeurs associées, la mémoire est libérée. Si les données étaient au milieu du tas, l’espace libéré sera réutilisé par les données du « fond du tas ». Ce procédé permet de redimensionner notre espace mémoire réservé et donc de libérer de la mémoire pour le système et les autres processus.

La syntaxe procédurale : logique C/C++ appliquée en C# Comme nous le disions, la syntaxe du C# est très inspirée du C/C++, on peut même faire de l’arithmétique de pointeurs pour peu que l’on définisse notre code en tant que « Unsafe ». Les personnes ayant de bonnes bases en C/C++ ne verront rien d’extraordinaire dans cette partie qui risque de paraitre dense pour ceux qui partent de zéro.
Remarque : Si c’est votre tout premier cours de programmation, ce chapitre va vous paraitre dense, je vous encourage à essayer chaque exemple et essayer de prendre du recul avec cette partie dans votre bagage pour mieux revenir sur la partie traitant de l’orienté objet.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *