IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Obtenir la mémoire utilisée par un processus


Sujet :

C

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut Obtenir la mémoire utilisée par un processus
    Bonjour, je suis en école d'informatique et je dois résoudre un problème pour un TP.
    Sous Linux, je dois créer des programmes en C. D'abord, je dois créer un programme qui ne contient aucune libération mémoire, puis je dois l'améliorer en rajoutant des free et des realloc.
    J'y arrive sans problème, mais ensuite le prof nous demande d'utiliser la commande linux pmap pour visualiser les améliorations. La commande pmap nécessite le pid du processus, et j'ai aucune idée de comment l'obtenir pour l'utiliser dans pmap.

    Sauriez-vous comment on fait svp ?
    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    " show process on linux " : http://www.cyberciti.biz/faq/show-al...sses-in-linux/ -- http://linuxlookup.com/howto/view_ru...s_linux_system
    (magique, non ? Les deux premiers résultats, tous deux valides)

    De rien.
    Dernière modification par Bktero ; 04/12/2014 à 09h40.

  3. #3
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Bonsoir.

    En mode console tu peux lancer la commande "top". Elle t'affiche en temps réel les processus en cours. Une fois lancée tu tapes sur la touche "u" pour choisir de n'afficher que les processus utilisateur. Une fois tapée tu tapes le nom de l'utilisateur pour lequel tu veux afficher ses processus. puis entrée. Donc si par exemple tu as lancé tes programmes sous l'utilisateur "toto" tu tapes "u" puis "toto" puis la touche "entrée".

    La colonne la plus à gauche te donnera l'information recherchée?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 33
    Points : 18
    Points
    18
    Par défaut
    Oui, je sais déjà tout ça. Mais ça ne résout pas mon problème.
    Mon programme s'exécute en un dixième de seconde. Avant son exécution il n'a pas de pid. Après son exécution il n'a plus de pid.
    Du coup, si j'ai bien compris, il faut que dans une seule commande je lance le processus, que j'obtienne son pid, et que je l'envoie dans la commande pmap.
    Si mon programme s'appelle toto, quelle commande dois-je écrire ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pourquoi ne pas donner tout les éléments du problème lors de ton premier post ?

    A mon sens, je pense que, même en mettant une suite de commande linux, tu n'aura pas le temps de faire la ligne complète avant que ton programme ne se finisse.

    Solution de facilité : Mettre un sleep() en fin de process, pour avoir le temps de le catch via ps et de pouvoir faire pmap derrière.
    Dernière modification par Invité ; 03/12/2014 à 20h17.

  6. #6
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    En mode console tu peux lancer la commande "top". Elle t'affiche en temps réel les processus en cours. Une fois lancée tu tapes sur la touche "u" pour choisir de n'afficher que les processus utilisateur. Une fois tapée tu tapes le nom de l'utilisateur pour lequel tu veux afficher ses processus. puis entrée. Donc si par exemple tu as lancé tes programmes sous l'utilisateur "toto" tu tapes "u" puis "toto" puis la touche "entrée".

    La colonne la plus à gauche te donnera l'information recherchée?
    Bonjour

    Un peu compliqué: ps -fu toto fait la même chose...

    Citation Envoyé par archMqx. Voir le message
    Solution de facilité : Mettre un sleep() en fin de process, pour avoir le temps de le catch via ps et de pouvoir faire pmap derrière.
    Autre solution au cas où le sleep() se terminerait trop tôt: un getchar() dans le code le fera attendre aussi longtemps qu'on le souhaite..
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Un peu compliqué: ps -fu toto fait la même chose...
    Tu as raison. Mais je retourne la remarque. Je pense avoir trouvé la solution au problème . Et cette solution est sur Developpez.com : http://man.developpez.com/man2/getpid/

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par gerald3d Voir le message
    Tu as raison. Mais je retourne la remarque. Je pense avoir trouvé la solution au problème . Et cette solution est sur Developpez.com : http://man.developpez.com/man2/getpid/
    Ouh le vilain tricheur
    On était parti dans un sous-entendu de trouver le pid d'un programme déjà existant, pas de modifier le code pour qu'il afficher son propre pid !!!
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  9. #9
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 291
    Points : 4 941
    Points
    4 941
    Billets dans le blog
    5
    Par défaut
    Je suis beau joueur Je plussois

Discussions similaires

  1. [Batch] Connaitre mémoire utilisée par un processus
    Par Maglight dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 05/10/2010, 07h39
  2. Mémoire max utilise par un processus
    Par Nitroreg dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 18/02/2010, 10h10
  3. Comment connaître la mémoire utilisée par un processus ?
    Par David dans le forum API, COM et SDKs
    Réponses: 11
    Dernier message: 17/01/2008, 15h01
  4. la mémoire utilisée par un processus
    Par LN(a) dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 22/04/2006, 14h28
  5. Supprimer la mémoire utilisée par les variables globales
    Par dnaprotector dans le forum OpenGL
    Réponses: 4
    Dernier message: 21/07/2005, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo