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?
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. […]
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 […]
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 […]
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 […]
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 […]
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 […]
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 […]
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 […]
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 […]