2016-04-06 4 views
0

J'ai écrit un processus C++ qui s'exécute dans une machine VMWare avec 512 Mo de RAM assignée.Colonne de mémoire virtuelle de processus Linux dans TOP/HTOP

Je vois par TOP/HTOP que la colonne VIRT affiche une valeur de 490Mb. Au lieu de cela, les autres processus affichent quelques kilo-octets pour le même champ.

Savez-vous pourquoi? Ai-je configuré quelque chose pour mon processus?

Merci beaucoup!

Répondre

0

Here is a good explanatio n que je vais voir et apprendre ...

Edit (07/04/2016): Je viens de voir, et il est génial! Veuillez regarder/proc//smaps pour savoir comment le RAM physique est utilisé par votre processus.

Modifier (2016-04-08): Je vais plus loin dans le problème, et j'ai découvert que chaque fois que je crée un thread, le processus augmente le VIRT utilisé. J'ai vu aussi que tous les autres processus Linux avec des threads allouer beaucoup de la taille de la mémoire VIRT, donc je pense que c'est absolument normal!

0

Virt n'a pas vraiment d'importance, utilisez -a avec la taille du résident. Virt montrera même les pages qui ont été échangées, et je pense que c'est probablement inutile pour ce que vous essayez de comprendre.

+0

Merci, mais où dois-je utiliser? Et, je comprends que cela n'a pas d'importance, mais pourquoi le haut afficher une valeur si élevée seulement pour mon processus C++? –

+0

- Trie par utilisation de la mémoire. –

+0

- Trie par utilisation de la mémoire. Si vous regardez virt au lieu de res, vous regardez aussi des pages mappées qui ne pourraient (probablement) pas réellement être allouées. Par exemple, si je m mmap (NULL, ...), je peux probablement obtenir des concerts de mémoire qui apparaîtront dans virt, mais pas dans res, car ils n'ont pas été alloués. C'est aussi l'une des raisons pour les bibliothèques partagées. –