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

Code::Blocks Discussion :

CPU sous C:B


Sujet :

Code::Blocks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Points : 49
    Points
    49
    Par défaut CPU sous C:B
    Salut,

    Quel est le temps d'exécution du programme en c sous C:B?
    Il m'affiche s deux durée différentes pour le meme programme! La quelle qui correspond au CPU?
    Merci



  2. #2
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Salut,

    Le temps "réel" de l'exécution du programme est donnée par le programme lui-même (c'est donc la valeur obtenue dans la console qui importe ici )

    Le temps indiqué par code::blocks représente le temps pendant lequel console_runner a été actif, c'est à dire, jusqu'à l'appui sur une touche qui a provoqué sa fermeture.

    Ainsi, si tu teste une application sous code::blocks et qu'elle s'effectue en deux secondes, mais que tu t'écarte de l'ordinateur pendant une demi-heure, tu verra un message de la console te demandant d'appuyer sur une touche pour terminer.

    cet appui provoquera la fin du console_runner et le temps indiqué par C::B sera... d'une demi heure

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Points : 49
    Points
    49
    Par défaut
    Merci pour ces explications!

    Ainsi, pourquoi à chaque fois, pour le meme programme, je clique sur l'onglet build and run, le temps d'exécution calculé par la fonction clock change?
    Quel est le temps d'exécution à prendre dans ce cas?
    Des explications??

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Points : 49
    Points
    49
    Par défaut
    33 lectures et personne pourrait me répondre!?

  5. #5
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Le fait est que le temps réel d'exécution dépend d'une quantité impressionnantes de facteurs, dont l'utilisation du processeur qui est fait par les autres applications (les démons de linux ou les services de windows, par exemple), l'utilisation de la mémoire ou la capacité du système à les différentes données nécessaires à l'application dans une page mémoire unique, et j'en oublie surement.

    Bref, tu te rend facilement compte que tu n'a finalement que peu de chances d'arriver à gérer toi-même l'ensemble de ces paramètres

    De plus, la fonction clock() peut être relativement imprécise selon le système sur lequel tu travaille.

    Enfin, windows et linux ne sont pas des systèmes dits "en temps réels" (que l'on devrait d'ailleurs nommer "en temps garantis").

    Cependant, les temps d'exécutions successives sont relativement stables, à quelques décimales près

    L'idéal, si tu as le temps à y consacrer, et si tu veux avoir une estimation la plus précise possible, est donc peut-être de faire exécuter plusieurs fois l'application et de calculer la moyenne des différents temps d'exécution.

    Si tu calcules également l'écart type, tu pourra même préciser que si l'application tourne en moins d'un temps donné, elle tournera exceptionnellement vite et que si elle tourne en plus d'un autre temps, elle tournera exceptionnellement lentement

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Le fait est que le temps réel d'exécution dépend d'une quantité impressionnantes de facteurs, dont l'utilisation du processeur qui est fait par les autres applications (les démons de linux ou les services de windows, par exemple), l'utilisation de la mémoire ou la capacité du système à les différentes données nécessaires à l'application dans une page mémoire unique, et j'en oublie surement.

    Bref, tu te rend facilement compte que tu n'a finalement que peu de chances d'arriver à gérer toi-même l'ensemble de ces paramètres

    De plus, la fonction clock() peut être relativement imprécise selon le système sur lequel tu travaille.

    Enfin, windows et linux ne sont pas des systèmes dits "en temps réels" (que l'on devrait d'ailleurs nommer "en temps garantis").

    Cependant, les temps d'exécutions successives sont relativement stables, à quelques décimales près

    L'idéal, si tu as le temps à y consacrer, et si tu veux avoir une estimation la plus précise possible, est donc peut-être de faire exécuter plusieurs fois l'application et de calculer la moyenne des différents temps d'exécution.

    Si tu calcules également l'écart type, tu pourra même préciser que si l'application tourne en moins d'un temps donné, elle tournera exceptionnellement vite et que si elle tourne en plus d'un autre temps, elle tournera exceptionnellement lentement
    Merci cher koala01 pour cette réponse!
    peut-être de faire exécuter plusieurs fois l'application et de calculer la moyenne des différents temps d'exécution.
    Quel est le nombre de de test à faire pour calculer la moyenne des différents temps d'exécution?
    Par avance, merci.

  7. #7
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Citation Envoyé par laureat Voir le message
    Quel est le nombre de de test à faire pour calculer la moyenne des différents temps d'exécution?
    Par avance, merci.
    Comme dans le sketch de je ne sais plus qui, la bonne réponse est "un certain nombre"... (dans le sketch en question, c'était "un certain temps"... mais bon )

    Plus tu aura un nombre élevé de tests, plus tu augmentera la précision de ta moyenne

    Pour le reste, je dirais que tout dépend du temps que tu veux bien passer sur tes tests

    (fais attention qu'il peut aussi y avoir des différences entre les versions debug et release )

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 116
    Points : 49
    Points
    49
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Comme dans le sketch de je ne sais plus qui, la bonne réponse est "un certain nombre"... (dans le sketch en question, c'était "un certain temps"... mais bon )

    Plus tu aura un nombre élevé de tests, plus tu augmentera la précision de ta moyenne

    Pour le reste, je dirais que tout dépend du temps que tu veux bien passer sur tes tests

    (fais attention qu'il peut aussi y avoir des différences entre les versions debug et release )
    Merci pour cette réponse!
    Dans le cas des exercices en classe, est ce que je prends la version debug ou relaese?
    Merci encore

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 692
    Points
    30 692
    Par défaut
    Un benchmark se fait toujours en mode release.

    La version débug va en effet régulièrement rajouter des information de débuggage, des assertions, des tests en pagaille, quand ce n'est pas purement et simplement supprimer certaines (voire toutes) les optimisations, et tout cela aura un impact très négatif sur les performances réelles

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2009, 11h48
  2. ORACORE9.DLL consommant de la CPU sous Windows
    Par rouardg dans le forum Oracle
    Réponses: 1
    Dernier message: 03/06/2009, 09h51
  3. temps CPU sous visual studio 2005
    Par pascale_92 dans le forum C++
    Réponses: 1
    Dernier message: 30/10/2007, 16h50
  4. Montée en charge du CPU sur liens sous IE7
    Par Neroptik dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 18/09/2007, 18h11
  5. Limiter l'utilisation CPU d'un programme sous debian
    Par programmerPhil dans le forum Administration système
    Réponses: 3
    Dernier message: 28/03/2006, 16h07

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