Forum Programmation.c++ calcul du temps d'exécution d'un processus

Posté par  .
Étiquettes : aucune
0
25
fév.
2009
Bonjour à tous,

J'ai réalisé une application en C++ sous linux, et maintenant je veux faire une implémentation concurrente (multiprocessus ou multithreads).

Pour besoin d' une évaluation de performances, je cherche s'il y a un moyen (une fonctions ou .....) qui me permet de calculer le temps d'exécution exacte de chaque processus (sans faire intervenir le temps d'exécution des autre processus que ce soit de mon application ou du systeme).

J'ai utilisé la fonction time mais ca retourne le temps d'exécution du tous ensemble.

J'ai une machine monoprocesseur.

Merci d'avance.
  • # time ton_application

    Posté par  . Évalué à -1.

    20c ou man time.
  • # gprof

    Posté par  . Évalué à 2.

    Peut-être qu'avec gprof tu peux avoir ce que tu veux.
    Mais je ne suis pas sûr des ses possibilités en termes de multi-thread et de multi-process.

    A la base gprof est capable de te dire combien de temps a été passé dans chaque fonction.
    S'il était capable de distinguer les différents threads ou process forkés, ça donnerait ce que tu cherches.

    à vérifier....
    • [^] # Re: gprof

      Posté par  . Évalué à 1.

      oprofile est largement meilleur que gprof.
      sinon valgrind avec son outil callgrind et l'interface kcachegrind sont tres bon aussi
  • # T'as du bol, je suis en plein dedans

    Posté par  . Évalué à 4.

    man 4 wait
    man 4 getrusage
    ru_stime

    Note qu'il s'agit du temps cpu, et uniquement lisible en fin d'execution.
    Le temps debut/fin est à calculer/gérer soi même avec les stamps unix.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.