À retenir
- C'est le chef d'orchestre de la mémoire vive (RAM).
- Il réserve (alloue) et récupère (libère) les emplacements de stockage.
- Son efficacité détermine souvent la rapidité et la stabilité d'une application.
Un allocateur est un composant logiciel qui joue le rôle de "gestionnaire de stock" pour la mémoire vive (RAM) de l'ordinateur. Lorsqu'un programme a besoin de place pour stocker des informations temporaires, il demande à l'allocateur de lui réserver un bloc libre, comme un réceptionniste attribue une chambre libre à un client dans un hôtel.
Étymologie
Dérivé du verbe latin allocare (« placer », « louer »). En informatique, il désigne spécifiquement la brique logicielle (souvent intégrée au système d'exploitation ou à un langage de programmation) qui gère la distribution dynamique des ressources mémoires.
Exemples d'usage
- La fonction
mallocen langage C est l'appel classique à un allocateur. - L'opérateur
newen C++ ou Java sollicite un allocateur pour créer un nouvel objet. jemallocoumimallocsont des allocateurs spécialisés utilisés pour améliorer les performances de gros logiciels comme les navigateurs web.
Cas d'usage
L'allocateur intervient dès qu'un logiciel doit manipuler des données dont la taille n'est pas connue à l'avance (chargement d'un fichier, création d'onglets dans un navigateur, affichage d'une image haute définition). Il est crucial dans le développement système et l'optimisation des performances des serveurs.
Bonnes pratiques
Pour les développeurs utilisant des langages de bas niveau (C, C++), il est impératif de toujours demander à l'allocateur de libérer la mémoire une fois le travail terminé pour éviter les "fuites de mémoire". Il faut aussi éviter de multiplier les toutes petites demandes d'allocation, ce qui peut ralentir le système (phénomène de fragmentation).
Synonymes
Antonymes
Conseil
Si vous débutez, considérez l'allocateur comme une boîte noire qui s'occupe de la logistique : votre but est de lui faire des demandes claires et de ne pas oublier de lui rendre ce que vous avez emprunté si le langage ne le fait pas pour vous.
Questions fréquentes
Pourquoi existe-t-il différents types d'allocateurs ?
Certains sont optimisés pour la vitesse, d'autres pour économiser la mémoire ou pour gérer efficacement les processeurs avec de nombreux cœurs.
L'allocateur est-il matériel ou logiciel ?
C'est un composant purement logiciel, même s'il communique étroitement avec le matériel via le système d'exploitation.