Bonjour a tous,
Je ne savais pas si je devais poster ma question ici ou dans un coin du forum plus orienté hardware, mais puisque je ne sais pas si le problème vient du programme ou de la gestion de la mémoire en elle-meme ... C'est parti pour ici.
J'ai donc un programme, écris en C, qui lit des données et construit un index en RAM sur ces données. Théoriquement, plus il y a de donnes inserées, plus l'index est compressé. Le programme en question fait surtout des petites allocations, rarement plus de 600 ou 700KB, beaucoup de réallocations et assez peu de désallocations. Sur des jeux de données de tailles moyens, Valgrind n'indique aucune fuite memoire. Le tout est lancé sur un PC portable tournant sous Ubuntu 14.04 64 bits, 15.4 GB de RAM et 15.7 GB de SWAP.
Toujours est-il que je me suis lancé il y a peu dans l'indexation (et donc l'insertion) de 4 jeux de données assez important en taille. J'ai laissé tourner le software pendant le weekend, m'attendant a une consommation de la RAM de l'ordre de 13.5 a 14.5 GB de RAM bien que théoriquement, la consommation mémoire pouvait etre beaucoup plus faible. A cela il faut ajouter environ 350 MB de RAM utilisée par le système. Or en revenant du weekend, je trouve le software toujours en train d'insérer le 4eme jeu alors qu'il aurait du finir depuis longtemps et la consommation mémoire est comme indiqué dans les images jointes.
Comme vous pouvez le voir, la RAM est presque pleine (15 GB sur 15.4 GB) et le système swap (6.4 GB sur 15.7 GB). J'avoue etre plutot surpris, le programme ne devrait pas utiliser tant de mémoire (15 + 6.4 = 21.4 GB soit plus de 7GB au dela de mes espérances). En revanche, il est indique que le processus ne prend que 10.6 GB de mémoire, ce qui collerai plus avec mes attentes mais pas avec ce qui a été dit précédemment.
Quelqu'un aurait t-il une idée pour expliquer cette ambiguité dans les chiffres ? Le programme utilise t-il 10.6 GB ou environ 20 GB ? Ou devrait-il utiliser 10.6 GB mais pour une raison quelconque lié a la partition Swap, il ne libère pas la mémoire ?
Merci d'avance pour vos réponses, toute piste/idée/réponse serait la bienvenue
Bonne journée !
Partager