Différence entre MMAP et Malloc

Différence entre MMAP et Malloc

mmap vs malloc

Il y a une mémoire dynamique en C et cela indique l'allocation de la mémoire dans le langage de programmation C à travers un ensemble de fonctions présentes dans la bibliothèque standard C. L'un d'eux est Malloc, qui fait référence à l'allocation de la mémoire. Dans le système Unix, il y a MMAP, qui fait référence à un système mappé de mémoire qui vient avec ses propres E / S uniques. Ces deux (MMAP et Malloc) exerceront une valeur nominale exécuter la même fonction, mais un examen approfondi révèle quelques différences. Ces différences, qui découlent de la fonctionnalité, sont décrites ci-dessous.

Différences

Tout d'abord, il est important de déterminer s'il existe des preuves indiquant qu'il existe un étouffement significatif de la mémoire disponible. Cela se fait grâce à la mesure des performances du programme contre la gestion de la mémoire .

L'interface d'allocation de mémoire principale est malloc. C'est le plus grand de la bibliothèque C. Une partie du code de gestion y contenu est MMAP.  Lorsque Malloc est en cours d'exécution, il rassemble toutes les installations du système disponibles. Des installations système supplémentaires peuvent être mobilisées via le noyau, qui est l'une des stratégies de gestion de la mémoire que les systèmes utilisent pour s'assurer qu'il existe une allocation de mémoire satisfaisante. Le processus n'est pas simple, cependant, et a été conçu pour être compliqué pour la seule raison d'empêcher les gens de créer des programmes simples qui peuvent désorganiser l'allocation de la mémoire et donc créer de mauvaises performances.

`` MMAP '', d'autre part, est un appel système qui prend en charge et demande au noyau de trouver une région inutilisée et contigu dans l'adresse d'une application suffisamment grande pour permettre la cartographie de plusieurs pages de mémoire. Il y a aussi la création de structures de gestion de la mémoire virtuelle qui ne peuvent en vigueur d'une segfault.

Malloc fonctionne généralement dans la majeure partie du processus de gestion de la mémoire. Dans le cas où le programme nécessite une mémoire supplémentaire, cela est emprunté au système d'exploitation. MMAP, d'autre part, utilise un commutateur de contexte qui se convertit en terre du noyau.

Malloc est le mieux adapté pour allouer la mémoire dans toute application exécutée sur le système par opposition à l'utilisation de MMAP. C'est ce qui doit se produire par défaut, autre que dans des cas spéciaux, alors qu'il peut être autorisé.

MMAP peut être utilisé pour accélérer la réponse donnée par les applications. Ceci n'est cependant pas conseillé car il finit par sacrifier certains octets aux pages afin que l'application puisse fonctionner en douceur. Bien que le contenu des données puisse sembler petit au début, l'extrapolation lorsque de nombreuses applications veulent s'exécuter peuvent en fait ralentir encore plus le système.

Après avoir mesuré les performances et l'utilisation des ressources, une évaluation approfondie de l'utilisation des données par toutes les applications exécutées sur le système doit être effectuée.  Si les durées de vie des applications exécutées peuvent être montrées, elle peut devenir meilleure.

L'utilisation de MMAP pour l'allocation de la mémoire s'accompagne de l'inconvénient que l'allocation et le traitement des données en morceaux coûtent cher. En effet.

MMAP est avantageux sur Malloc car la mémoire utilisée par MMAP est immédiatement renvoyée au système d'exploitation.   La mémoire utilisée par Malloc n'est jamais retournée à moins qu'il y ait une rupture de segment de données. Cette mémoire est spécialement maintenue pour être réutilisée.

Résumé

«Malloc» représente le point d'allocation de la mémoire principale

Un système MMAP appelle et demande un noyau pour trouver des régions inutilisées dans des adresses d'application qui peuvent s'adapter à la cartographie de plusieurs pages de mémoire

MMAP n'est pas recommandé pour allouer la mémoire car il divise la mémoire disponible et ne peut pas passer d'appels système

Un avantage de MMAP sur Malloc est la disponibilité de la mémoire, par opposition à la mémoire Malloc, qui est réutilisée.