Evaluation de performance d'un programme Ada

  • Auteur de la discussion Theorie du chaos
  • Date de début

Theorie du chaos

Expert
je dois evaluer les perfs d un prog Ada , pour cela ma prof dit d'utiliser la commande time -p qui renvoit

o The elapsed (real) time between invocation of utility
and its termination.

o The User CPU time, equivalent to the sum of the
tms_utime and tms_cutime fields returned by the
times(2) function for the process in which utility is
executed.

o The System CPU time, equivalent to the sum of the
tms_stime and tms_cstime fields returned by the
times() function for the process in which utility is
executed.

quel temps dois-je utiliser pour savoir le temps reellement utile a mon programme?
 

patry

Expert
[citation=27690,1][nom]Theorie du chaos a écrit[/nom]je dois evaluer les perfs d un prog Ada , pour cela ma prof dit d'utiliser la commande time -p qui renvoit

o The elapsed (real) time between invocation of utility
and its termination.

o The User CPU time, equivalent to the sum of the
tms_utime and tms_cutime fields returned by the
times(2) function for the process in which utility is
executed.

o The System CPU time, equivalent to the sum of the
tms_stime and tms_cstime fields returned by the
times() function for the process in which utility is
executed.

quel temps dois-je utiliser pour savoir le temps reellement utile a mon programme?
[/citation]

Cela dépend de ce que tu veux mesurer ... le temps total d'execution (y compris le temps consommé par les autres processus préemptant ton application), le temps passé dans ton code (user time) ou le temps passé dans le systeme (les appels systemes en gros).
 

pappy

Habitué
En general, on fait la somme du System time et du User time.

Le User time, c'est ton temps dans tes Algorithmes
Le system time, c'est le temps des appelles systeme de TON programme.
Si le but est d'evaluer les perfs, il est utile de mesurer les deux ainsi que la consomation de RAM et de regarder comment ca se comporte en fonction des differents strategies utilise dans ton programme.

Exemple:
* Strategie je charge le plus de choses possible en RAM pour limiter les acces au disque:
Ta consomation de RAM va monter, mais le system time sera fixe.
* Strategie je charge les donnees quand j'en ai besoin:
C'est plus complique, et ca depend du fonctionnement de ton programme. Si tu accedes a toutes les donnees, alors, c'est plus long. Si tu accedes uniquement a une petite partie, plus court. Dans tous les cas, le User Time est fixe car tu ne change pas la partie Algorithmique
* Strategie de chargement dynamique avec gestion du cache:
Normalement, tu gagne toujours en System Time et en RAM, par contre, tu rajoute un algorithme de gestion du cache, et donc tu perd un peu en User Time.

Evidement, ce sont des exemple de l'influence des parametres sur le User et System time.

Dans presque tous les cas, sur un system Unix, le "real" time ne peut pas etre utilise pour effectuer des comparaisons car il y a d'autres taches en background qui viennent interferer (encore plus si tu utilise X11)

PS: Tu fais quoi en dADA? Et tu fais ca ou? Et c'est quelle version de dADA? Et on mange quoi ce soir (Put1, j'aurais pas du reprendre des champignons moi)
 

patry

Expert
[citation=27797,1][nom]pappy a écrit[/nom]PS: Tu fais quoi en dADA? Et tu fais ca ou? Et c'est quelle version de dADA? Et on mange quoi ce soir (Put1, j'aurais pas du reprendre des champignons moi)
[/citation]

C'est le plus souvent dans le domaine embarqué que l'on continue a utiliser l'Ada. P.ex pour l'avionique civile les allemands en sont friands, les français sont plutôt orientés 'C' mais tout dépends en fait de l'existant et des besoins d'évolution.
Moi j'ai connu cela dans des machines de tri, et dans l'avionique principalement.
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 069
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut