Comment mesurer la taille de la pile d'un processus?
Comment puis-je trouver la taille de la pile d'un processus ?
/proc/5848/statut me donne VmStk mais cela ne marche pas changer
Peu importe combien jamais de la boucle while et la récursivité je le fais dans mon programme de test cette valeur ne change pratiquement pas.
quand j'ai regardé dans /proc/pid/l'état de l'ensemble du processus a 136k et n'ont aucune idée d'où naît la valeur.
Merci,
Cherchez-vous à obtenir les tailles de tapis de threads individuels d'un processus multithread?
OriginalL'auteur resultsway | 2012-12-06
Vous devez vous connecter pour publier un commentaire.
Il n'y a vraiment aucune une telle chose comme la "taille de la pile d'un processus de" sur Linux. Les processus ont un tapis de départ, mais comme vous le voyez, ils sont rarement allouer beaucoup de la pile standard. Au lieu de cela, les processus juste allouer de la mémoire générique à partir du système d'exploitation et l'utiliser comme une pile. Donc il n'y a aucun moyen pour le système d'exploitation à savoir, que le détail n'est visible que de l'intérieur du processus.
Typique, moderne OS peut avoir une taille de pile limite de 8 MO imposées par le système d'exploitation. Pourtant, les processus régulièrement allouer beaucoup plus d'objets sur leur tapis. C'est parce que l'application est à l'aide d'une pile qui est purement application gérée et pas une pile d'autant que le système d'exploitation concerné.
Est-ce toujours vrai pour le multi-thread processus. Single-threaded processus, il est possible qu'ils sont en fait juste à l'aide de très, très peu de pile.
OriginalL'auteur David Schwartz
Peut-être vous voulez juste pour obtenir la carte d'adresse de certains processus. Pour les processus de 1234, lire dans l'ordre, la
/proc/1234/maps
pseudo-fichier. Pour votre propre processus, lire/proc/self/maps
Essayer
pour obtenir un sentiment de (la commande ci-dessus affiche l'adresse de la carte de la
cat
processus de l'exécution).Lire proc(5) page de manuel pour plus de détails.
Vous pourriez aussi être intéressé par les limites des processus, par exemple getrlimit(2) et liées syscalls.
je ne suis pas sûr que la taille de la pile a un certain sens précis, notamment pour le multi-thread processus.
Peut-être vous êtes intéressé à mmap(2)-ed segments avec
MAP_GROWSDOWN
.OriginalL'auteur Basile Starynkevitch