From dc6cc0ebc74d760b04c48b1b0fbd8acbe4ea01b6 Mon Sep 17 00:00:00 2001 From: Anthony Borghi <anthony.borghi@veremes.com> Date: Thu, 20 Apr 2023 12:29:25 +0200 Subject: [PATCH] le tas et la pile --- source/concept/system/general.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/source/concept/system/general.md b/source/concept/system/general.md index 3b98f40..f1d6522 100644 --- a/source/concept/system/general.md +++ b/source/concept/system/general.md @@ -80,4 +80,20 @@ Par exemple en C/C++ on va régulièrement utiliser des librairies dynamiques (D On peut aussi utiliser des API, SDK, ou même des exécutables. -Par exemple si je reste dans le cas de nos applications, on va configurer un WebServer Apache, qui va lancer l'exécutable de PHP pour aller interpréter le code de API, ce qui va provoquer des actions de la machine pour produire un résultat. \ No newline at end of file +Par exemple si je reste dans le cas de nos applications, on va configurer un WebServer Apache, qui va lancer l'exécutable de PHP pour aller interpréter le code de API, ce qui va provoquer des actions de la machine pour produire un résultat. + +## Gestion de la mémoire + +Lorsque l'on développe, il faut garder à l'esprit la façon dont la mémoire va être gérée. On parle habituellement du **tas** et de la **pile**. + +Le tas et la pile sont deux structures de données importantes en programmation. Le **tas** est une région de la mémoire qui stocke les **objets dynamiquement alloués**, tandis que la **pile** est une structure de données en mémoire qui stocke **les données temporaires du programme**, telles que les variables locales et les appels de fonction. + +En utilisant la pile, un programme peut stocker temporairement des variables et des adresses de retour lorsqu'il appelle une fonction. La pile est gérée automatiquement par le compilateur ou l'interpréteur du langage de programmation, qui ajoute et retire des éléments de la pile à mesure que les fonctions sont appelées et retournées. + +Le tas, quant à lui, est utilisé pour allouer de la mémoire dynamiquement pendant l'exécution du programme. Le programmeur peut demander une quantité spécifique de mémoire à allouer sur le tas à l'aide de fonctions telles que malloc() et free(). Cela permet au programme de gérer la mémoire de manière plus flexible que la pile, mais cela nécessite également une gestion plus complexe de la mémoire pour éviter les fuites de mémoire et les problèmes de fragmentation. + +En TypeScript, la gestion de la mémoire est gérée par le moteur JavaScript qui utilise un Garbage Collector pour libérer automatiquement la mémoire allouée pour les objets qui ne sont plus utilisés. Bien que les développeurs TypeScript n'aient pas besoin de gérer explicitement la mémoire comme dans les langages à faible niveau, tels que le C ou le C++, ils doivent être conscients de l'utilisation de la mémoire pour éviter les fuites de mémoire et les performances inutiles. + +En PHP, la gestion de la mémoire est également gérée automatiquement par le moteur PHP. PHP utilise un système de gestion de mémoire par comptage de références pour allouer et libérer automatiquement la mémoire pour les variables et les objets. Cependant, les développeurs PHP peuvent également allouer de la mémoire dynamiquement à l'aide de fonctions telles que malloc() et free(), mais cela est rarement nécessaire. + +En résumé, bien que la gestion de la mémoire puisse varier entre les langages de programmation, la compréhension des concepts de tas et de pile reste importante pour les développeurs de tous les langages. Les développeurs doivent être conscients de l'utilisation de la mémoire pour éviter les fuites de mémoire et les performances inutiles, mais cela peut être géré de manière différente selon les langages. \ No newline at end of file -- GitLab