Articles of gestion de la

exécutable dans la fonction malloc_y

Nous essayons de porter notre application de la machine HP à la machine AIX. Il fonctionnait correctement sur une machine HP, mais maintenant, il échouait dans la fonction malloc_y. mais nous ne pouvons trouver aucun indice pour cela. qui appelle cette fonction malloc_y?

Dans quel segment de mémoire un programme global et des variables statiques locales sont enregistrés

Pour autant que je sache, les variables statiques globales sont stockées dans le segment .Data et .Bss. (global) static int i; —> .BSS (global) static int i=10; —> .Data Si tel est le cas, plusieurs fichiers ayant les mêmes variables staiques globales accèdent aux variables depuis un emplacement mémoire commun à tout le programme. Ex. […]

En C, pourquoi les processus enfants ne sont-ils pas automatiquement récupérés?

Pour expliquer, je ne demande pas comment récolter un processus. Dans C, le processus parent doit explicitement récupérer un enfant créé, même si l’enfant est sorti en effectuant un appel de fonction exit (). Je comprends qu’en récoltant l’enfant, il peut être nécessaire d’obtenir le statut de sortie de l’enfant. En fait, c’est la seule […]

Différence entre “cache mémoire” et “pool mémoire”

En lisant “Understanding Linux Network Internals” et “Understanding Linux Kernel” en lisant les deux livres ainsi que d’autres références, je suis assez confus et j’ai besoin de quelques éclaircissements sur les techniques de “mémoire cache” et de “pool de mémoire” . 1) Sont-ils les mêmes techniques ou différentes? 2) Si ce n’est pas la même […]

Pourquoi une taille de mémoire différente est-elle allouée à l’entier dans BSS et dans le segment de données?

Veuillez passer par le programme suivant – #include void main() { } La mémoire allouée à chaque segment est la suivante (en utilisant la commande de taille sous Unix) – text data bss dec hex filename 1040 484 16 1540 604 try Après déclaration de variable globale- #include int i; void main() { } La […]

Pourquoi je ne peux pas libérer ces gros blocs de mémoire

Récemment, j’ai rencontré une erreur étrange lors du débogage d’un programme. Nous allouons un gros tampon. Après l’avoir libéré, la mémoire n’est pas revenue à l’OS. Et puis l’atsortingbution suivante pourrait échouer en raison d’un manque de mémoire. J’ai ensuite fait le programme de test suivant. J’ai alloué de la mémoire pour le pointeur c […]

Différence entre MemFree et MemAvailable

En utilisant Ubuntu 14.02 et en exécutant la commande cat / proc / meminfo, j’obtiens les informations suivantes: MemTotal: 1007796 kB MemFree: 64248 kB MemAvailable: 64876 kB Je voudrais connaître la différence exacte entre MemFree et MemAvailable. Il serait également utile d’indiquer comment utiliser plus efficacement les ressources du système. J’ai un nouvel ordinateur portable […]

Pourquoi tant d’applications allouent une quantité incroyable de mémoire virtuelle sans l’utiliser?

Je regarde des phénomènes étranges dans la programmation depuis un certain temps, car la surconsommation est activée par défaut sur les systèmes Linux. Il me semble que pratiquement toutes les applications de haut niveau (par exemple, les applications écrites en langage de programmation de haut niveau comme Java, Python ou C #, y compris certaines […]

Fuite de mémoire sur l’allocation de page avec malloc

Considérons le code C suivant, qui crée 100 000 pages de 4 Ko, libère alors 99 999 pages et libère la dernière page: #include #include #define NUM_PAGES 100000 int main() { void *pages[NUM_PAGES]; int i; for(i=0; i<NUM_PAGES; i++) { pages[i] = malloc(4096); } printf("%d pages allocated.\n", NUM_PAGES); getchar(); for(i=0; i<NUM_PAGES-1; i++) { free(pages[i]); } printf("%d […]

Comment puis-je empêcher Perl de consumr des tonnes de mémoire lorsque des fourches d’enfant d’un processus parent important sont fermées?

Le contexte: J’ai un processus Perl multi-forking (5.16) qui fonctionne sous Linux. Le fork parent charge une très grande quantité de code Perl (via use/require ) et alloue beaucoup de structures de données (plusieurs Go). Il crée ensuite de nombreuses fourchettes enfants, qui travaillent toutes en parallèle. Ceci est fait pour réduire l’empreinte mémoire du […]