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

Linux Discussion :

[Linux et SunOs] Commande time


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut [Linux et SunOs] Commande time
    Bonjour,
    suite a la mise a jour d'un logiciel, je dois quantifier les gains de temps entre l'ancienne et la nouvelle version. Jusqu a présent, j ai toujours utilisé la commande time qui me donne le temps réel, le temps user et le temps système.
    Mon problème est le suivant, les temps user et système ne sont pas toujours cohérente et varie énormément entre deux exécutions similaires.
    Je voudrais savoir si le fait qu il y ait 2,4 8 ou meme 16 processeurs sur la machine pouvait poser des problèmes sur les résultats de cette commande.
    Et s il existait une alternative a la commande time.

    Merci de vos réponses.

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    si tu as accès aux sources, oui il y a une alternative.

    (voir la rubrique sources C => date => GetClock qui donne la valeur réelle du temps passé (absolue)).

    En ce qui concerne la commande time, le temps user est le temps "elapsed", donc peut énormément varier suivant la charge, le temps système est le temps machine, comptabilisé uniquement en temps où le programme est chargé (impliquant que s'il il est déchargé par swap, ça ne compte pas). D'où effectivement une variation là encore en fonction de la charge, et vraisemblablement du nombre de CPUs.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    oui la charge je suis conscient que cela influe sur les résultats mais cela n est pas gênant, on peut toujours s arranger pour faire les mesures a charge quasi égale.

    mais pour ce qui est du temps système, est ce possible qu il soit faussé a cause des multi processeurs (qu il calcule par exemple que le temps ou il est chargé dans le 1er processeur et pas dans les autres ...)

  4. #4
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Ton programme est-il multi-tâche ? Fais-tu des accès disques ou vers d'autre périphériques ? Ceux-ci ont-ils changés ?

    Juste pour indication tu peux aussi lancer le soft via un script avec un appel à 'date' avant et après (mais c sur les infos sont moins précises et moins complètes).

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2007
    Messages : 417
    Par défaut
    le temps réel est bon, c est le temps système qui me pose problème


    Pour le programme c est deux processus qui communiquent par ipc

    D après ce que j ai compris le temps systeme c est le temps passé dans l espace noyau et le temps user c est le temps passé dans l espace utilisateur.
    La somme des deux est le temps passé dans le processeur

  6. #6
    Membre éclairé

    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2005
    Messages
    464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2005
    Messages : 464
    Par défaut
    Théoriquement je penserais que Linux attribue un processus/une tâche au processeur qui est le moins chargé, mais ...
    • D'après ici les processus user ne sont pas répartis entre les processeurs ce que je ne crois pas car make gère le smp. De plus la doc linux "cpusets.txt" montre que l'on peut attribuer des tâches a des cpus.
    • Le support SMP Linux est inégal suivant les architectures PC (PowerPC, ...) et
    • Il faut que le SMP soit activé dans le noyau et par le chargeur d'amorçage
    .

    Si ce qu'il se passe correspond à la "thérorie" alors je dirais : les perfomances dépendent de surtout ton application. Tu as en effet des tâches en attente sur des queues de messages, donc l'une d'elle peut être en attente de msg, ou en attente d'emission.
    Tu peux le vérifier avec strace.

    Enfin l'ordonnanceur Linux peut modifier la priorité de tes applications et recevoir moins de temps processeur.

  7. #7
    Expert confirmé

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Ashin Voir le message
    D après ce que j ai compris le temps systeme c est le temps passé dans l espace noyau et le temps user c est le temps passé dans l espace utilisateur.
    La somme des deux est le temps passé dans le processeur
    me trompe-je ou le temps utilisateur est simplement le delta entre le moment où le programme est lancé et celui`où il se termine ?

    Le temps passé dans le processeur serait donc plutôt la différence des 2 temps.. Et encore.. Comme dit plus haut, il y a le swap, l'attente passive (sleep ou wait d'une ressource, etc etc)..

Discussions similaires

  1. [Linux-cobol-it] Commande introuvable
    Par jean-luc.rose dans le forum Cobol
    Réponses: 3
    Dernier message: 30/05/2009, 20h54
  2. Process et commande "times"
    Par rberthou dans le forum Administration système
    Réponses: 2
    Dernier message: 18/12/2008, 15h37
  3. [NASM] Commande times
    Par nono212 dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 02/04/2008, 15h23
  4. [DEBUTANT]Installer un client ftp sur un linux ligne de commande
    Par tripper.dim dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 11/06/2007, 17h28
  5. Réponses: 5
    Dernier message: 31/05/2006, 19h30

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