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

Langage C++ Discussion :

Utulisation de boost::chrono::process_user_cpu_clock


Sujet :

Langage C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 94
    Par défaut Utulisation de boost::chrono::process_user_cpu_clock
    Bonjour
    Pour faire un test de benchmark j'ai pensé utiliser boost::chrono::process_user_cpu_clock.
    J'ai la dernière version de boost mais apparemment cela ne suffit pas. Voici un petit programme qui ne compile plus si on décommente le bloc.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include <iostream>
    #include <boost/chrono/include.hpp>
     
    using namespace std;
    using namespace boost;
    using namespace boost::chrono;
     
     
    int main()
    {
        cout << "Hello world!" << endl;
     
    #ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
      cout<<"\n YES 1";
    #endif
     
    #ifdef BOOST_CHRONO_HAS_PROCESS_CLOCKS
      cout<<"\n YES 2";
    #endif
     
    #ifdef BOOST_CHRONO_HAS_THREAD_CLOCK
     cout<<"\n YES 3";
    #endif
     
    /*
    std::cout << system_clock::now() << '\n';
     
    #ifdef BOOST_CHRONO_HAS_CLOCK_STEADY
      std::cout << steady_clock::now() << '\n';
    #endif
     
    std::cout << high_resolution_clock::now() << '\n';
     
    #ifdef BOOST_CHRONO_HAS_PROCESS_CLOCKS
      std::cout << process_real_cpu_clock::now() << '\n';
      std::cout << process_user_cpu_clock::now() << '\n';
      std::cout << process_system_cpu_clock::now() << '\n';
      std::cout << process_cpu_clock::now() << '\n';
    #endif
     
    #ifdef BOOST_CHRONO_HAS_THREAD_CLOCK
      std::cout << thread_clock::now() << '\n';
    #endif
     
    */
        return 0;
    }
    J'ai droit au message d'erreur
    ... undefined reference to `boost::chrono::system_clock::now()'
    Idem pour les autres.

    Il faut sans doute faire quelque chose en plus mais quoi ? Merci d'avance pour vos réponses.

    PS : je sais qu'il y a un forum spécial pour boost mais la dernière question date du 08/07/2024 et est restée sans réponse depuis. En outre le fil [Actualité] date de ... 2012 !
    Ne m'en veuillez pas de poser ma question ici.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2011
    Messages
    770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Juin 2011
    Messages : 770
    Par défaut
    Et comment compiles-tu ? Il semble manquer la lib pendant la phase de link. Au pif, libbost_chrono.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 94
    Par défaut
    En fait, d'après 'The Boost C++ Libraries' https://theboostcpplibraries.com/boost.timer
    j'ai besoin de Boost.chrono et de Boost.timer

    Ces deux librairies doivent être compilées séparément.
    Dans 'Getting Started on Windows' https://www.boost.org/doc/libs/lates...d/windows.html
    il est indiqué
    The only Boost libraries that must be built separately are:
    Boost.Chrono
    ....
    Boost.Timer
    ...
    Mon problème a donc évolué
    1) comment les télécharger
    2) comment les compiler
    3) où les placer

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 94
    Par défaut
    Merci jo_link_noir
    J'ai vu ta réponse après avoir reposté. Oui, c'est là le problème.
    J'ai été voir https://github.com/boostorg/timer/tree/boost-1.90.0
    mais je ne sais pas quoi en faire.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 167
    Billets dans le blog
    4
    Par défaut
    steady clock et sa clique sont dans la std depuis C++11
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 94
    Par défaut
    Merci Bousk

    Effectivement il y a std::chrono mais ici on parle de boost::chrono.
    Dans le standard il y a une 'wall clock' mais rien qui permet d'avoir le 'user time'.
    Je crois que le 'user time' est accessible en standard sous Linux mais je n'en suis pas sûr.

    PS : je travaille sous Windows avec Code::Blocks

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 167
    Billets dans le blog
    4
    Par défaut
    Et l'implémentation std est utilisable sans avoir besoin d'ajouter aucune dépendance, surtout vu que tu ne sembles pas capable d'ajouter celle à Boost qui sont parfois bien lourdes, à fortiori quand elles ne sont pas header-only.
    Choisis ta clock.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 94
    Par défaut
    @Bousk
    Que boost soit parfois un peu lourd, j'en conviens.
    Mais, en ce qui concerne mon problème, 'Boost.Chrono' fournit le 'wall time, le 'user time' (et même le 'system time' dont je n'ai pas besoin).
    Sauf erreur de ma part, le standard ne fournit que le 'wall time' avec divers degrés de précision mais pas le 'user time'.
    surtout vu que tu ne sembles pas capable d'ajouter celle à Boost
    Bien vu : mais c'est pourquoi je suis là !

  9. #9
    Membre Expert
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    741
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 96
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 741
    Par défaut
    Salut,

    Il me sermble que STL (Stephan Lavavej) propose toujours les binaires de boost, y compris les scripts de compilations, conf. Ming Distro sur nuwen.net, quelque chose comme ça.

Discussions similaires

  1. installation de boost
    Par heinquoi dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 18/04/2005, 18h20
  2. Fichiers, dossier, chemin et lib boost ?
    Par Clad3 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 24/11/2004, 19h21
  3. Installation de boost (librairie)
    Par dj.motte dans le forum Autres éditeurs
    Réponses: 14
    Dernier message: 21/11/2004, 04h11
  4. boost::serialize
    Par Fry dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 05/11/2004, 19h03
  5. cherchecomment utiliser boost sous linux
    Par Krost dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 25/02/2004, 23h03

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