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

Bibliothèques, systèmes et outils C Discussion :

Profiler son code sous unix


Sujet :

Bibliothèques, systèmes et outils C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Profiler son code sous unix
    Bonjour à tous,

    Après quelques recherches sur le net, je me rends compte que ce n'est pas évident de trovuer de bonnes informations sur la façon dont on peut profiler son code, en particulier quand on ne l'a jamais fait ...
    Je suis sous Solaris et j'ai vu que je pouvais utilisé gprof en utilisant l'option -pg à la compile mais je ne pige pas vraiment la démarche à faire.

    De plus, est il possible de faire cette analyse sur les deux lib dynamiques que je créé pour tester mon programme ?
    Merci d'avance

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    euh....

    man gprof te donnera tout ce que tu veux...

    mais aussi man gcc à la rubrique -pg...

    Quant à faire du profiling séparé par thread, ça je ne sais pas....
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  3. #3
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Sinon, la bonne vieille méthode avec des printf et des gettime
    C'est bourrin, mais cela peut "un peu" aider.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Petit état sur mon avancement :
    J'ai réussi tant bien que mal à compiler avec l'option -pg et avoir un exécutable. Le souci est que lors de l'exécution justement, je ne retrouve pas le fichier gmon.out qui devrait apparaitre. J'ai par contre un fichier mon.out donc j'utilise prof au lieu de gprof.

    Seulement, ce truc apparait pour le moment comme une grosse arnaque ... En effet, il me trouve que 99% du temps, il utilise la fonction _mcount. Cette fonction est justement ce qui est rajouté à mon code pour permettre le profiling donc c'est fou comme ça m'avance ... Y a t'il un truc que j'ai raté ?
    Voici le résultat de ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    9:05@ssss .../XX_dev <209> # prof test.S
     %Time Seconds Cumsecs  #Calls   msec/call  Name
      99.2    8.80    8.80    1177      7.477   _mcount
       0.6    0.05    8.85                      xx_inp
       0.2    0.02    8.87                      xx_out
       0.0    0.00    8.87       1      0.      LoadingRtmSch1
       0.0    0.00    8.87       1      0.      InitThreads
       0.0    0.00    8.87      99      0.0     RunningXX
       0.0    0.00    8.87       1      0.      LoadingXX
       0.0    0.00    8.87      99      0.0     RunningRtmSch1
       0.0    0.00    8.87      99      0.0     CycliqueThreads
       0.0    0.00    8.87      96      0.0     CycliqueThread_RtmSch2
       0.0    0.00    8.87      98      0.0     CycliqueThread_RtmSch1
       0.0    0.00    8.87      98      0.0     RunningRtmSch2
       0.0    0.00    8.87       1      0.      LoadingRtmSch2
       0.0    0.00    8.87       1      0.      Init_Port_B
       0.0    0.00    8.87       1      0.      Init_Port_A
       0.0    0.00    8.87     480      0.00    Search_PortId
       0.0    0.00    8.87       1      0.      Init_Port
       0.0    0.00    8.87       1      0.      main
       0.0    0.00    8.87      99      0.0     XX_dev
       0.0    0.00    8.87       1      0.      XX_dev_init

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 369
    Points : 23 623
    Points
    23 623
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Sinon, la bonne vieille méthode avec des printf et des gettime C'est bourrin, mais cela peut "un peu" aider.
    Certes, mais ce n'est pas un conseil à donner à un débutant (qui ne l'est pas vraiment, en l'occurrence). C'est au contraire le bon moment pour l'orienter directement vers l'usage de débogueurs.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Je préfère d'ailleurs être considéré comme un débutant, ça permet d'avoir des explications parfois plus claires, en particulier quand on se remet sur un langage non pratiqué depuis quelques années. Le dev C sous UNIX regorge quand même de galère pas possible ...

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Certes, mais ce n'est pas un conseil à donner à un débutant (qui ne l'est pas vraiment, en l'occurrence). C'est au contraire le bon moment pour l'orienter directement vers l'usage de débogueurs.
    Oui ... mais je prefere donne toute les possibilites ( meme si je prefere de loin les outils professionnels tels que les debuggueurs et autre profiler). Apres, nous n'avons pas toujours la possibilite ...
    Donc, finalement, je prefere presenter toute les possibilites (surtout lorsque j'ai un prof qui me demande de faire une section de mon code afin de faire du profiling)
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Solution pour tester son site avec IE sous Unix
    Par _jey_ dans le forum Général Conception Web
    Réponses: 5
    Dernier message: 14/05/2009, 11h11
  2. Réponses: 37
    Dernier message: 10/09/2008, 15h16
  3. Outils de profiling de code sous windows
    Par doderic dans le forum C
    Réponses: 0
    Dernier message: 04/07/2008, 13h44
  4. Mettre En Forme Son Code Sous Word
    Par potters dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/06/2007, 14h13

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