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 Perl Discussion :

temps d'exécution d'un script


Sujet :

Langage Perl

  1. #1
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut temps d'exécution d'un script
    J'ai regardé dans la FAQ les modules manipulant les dates et je suis tombée sur : date-calc

    J'aimerais connaitre le temps d'exécution d'un script en h/min/sec.
    Existe t'il un module plus approprié?

    Sinon, peut-être serait-ce mieux de calculer la différence entre le time de départ et celui à la fin du script puis d'en calculer. Ensuite, il faudrait transformer ce résultat en h/min/sec.

    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
    #!/usr/local/bin/perl
     
     
    use strict;
    use warnings;
     
    use Date::Calc qw(:all);
     
     
    my ($start_hour,$start_min,$start_sec) = Now([+1]);
     
    sleep(100);
     
    my ($end_hour,$end_min,$end_sec) = Now([+1]);
     
    my ($D_y,$D_m,$D_d, $Dh,$Dm,$Ds) =
          Delta_YMDHMS(1, 1, 1, $start_hour, $start_min, $start_sec,
                       1, 1, 1, $end_hour,$end_min,$end_sec);
     
    print $Dh." h ".$Dm." min ".$Ds." sec\n";

    Merci pour vos conseils;
    -- Jasmine --

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Pour calculer le temps d'exécution d'un script sous unix/linux, tu lance le script de cette façon :

    Sous windows, le mieux est de récupérer le time au début et et à la fin du script.Puis de faire la différence et le mettre au bon format d'affichage

  3. #3
    Invité
    Invité(e)
    Par défaut
    Sous Windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    my $time=time;
    # ...
    # code
    # ...
    $time=time-$time;
    print "Temps d'execution en secondes : ", $time, "\n";
    Si tu veux plus de détails sur les temps d'exécution de certaines boucles ou instructions, utilise le module Benchmark.

  4. #4
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Merci pour vos réponses.

    Citation Envoyé par djibril Voir le message
    Pour calculer le temps d'exécution d'un script sous unix/linux, tu lance le script de cette façon :

    Sous windows, le mieux est de récupérer le time au début et et à la fin du script.Puis de faire la différence et le mettre au bon format d'affichage
    Quelle module dois-je utiliser pour changer le format de secondes en H/M/S?
    -- Jasmine --

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771

  6. #6
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    ... je ne trouve pas
    Sommaire > Gestions des dates
    Comment afficher une date en perl ?
    Comment connaitre le time depuis une date ( L'inverse de localtime et gmtime) ?
    Connaitre le nombre de jours entre deux dates
    Connaitre une date vieille ou futur
    Les modules les plus utilisés pour la gestion des dates en perl
    Peut-être le module DateTime cité dans le dernier chapitre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      my $formatter = DateTime::Format::Strptime->new(...);
      my $dt = DateTime->new(year => 2004, formatter => $formatter);
    Mais cela semble compliqué à utiliser. Est-ce bien ce à quoi tu penses?
    -- Jasmine --

  7. #7
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Du moment où tu as le nombre de secondes (la durée de ton programme), tu peux la convertir en ce que tu veux.

    Moi j'ai une procédure pour cela + code kuzsco :

    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
    my $timeTotal =time;
    # ...
    # code
    # ...
    $timeTotal=time - $timeTotal;
    print "Temps d'execution en secondes : ", FormatSeconde( $timeTotal ), "\n";
     
     
    sub FormatSeconde {
     
      my ($seconde) = @_;
     
      my $une_seconde = 1;
      my $une_minute  = $une_seconde * 60;
      my $une_heure   = $une_minute * 60;
     
      my $heure = int( $seconde / $une_heure );
      my $minute = int( ( $seconde % $une_heure ) / $une_minute );
      $seconde = int( ( $seconde % $une_heure ) % $une_minute );
     
      #                  condition           calcul de la taille
      my $retour
          = $seconde > $une_heure  ? "$heure" . "h$minute" . "min$seconde" . "sec"
          : $seconde > $une_minute ? $minute . "min$seconde" . "sec"
          : $seconde > $une_seconde ? $seconde . " secondes"
          :                           "moins d'une seconde";
      return $retour;
    }

  8. #8
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Citation Envoyé par djibril Voir le message
    Du moment où tu as le nombre de secondes (la durée de ton programme), tu peux la convertir en ce que tu veux.

    Moi j'ai une procédure pour cela + code kuzsco :
    Oui mais dans ce cas, n'est-il pas préférable d'utiliser le module Date::Calc, comme je le fais dans le script de mon premier message? J'obtiens la même réponse mais sans devoir créer une nouvelle fonction.
    -- Jasmine --

  9. #9
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    J'avais pas fait attention.
    Bah écoute, si. Ton exemple est aussi bien. C'est une autre façon de faire.

    Par habitude, ce genre de bout de code qui peut être pratique et utilisé dans divers scripts, je le mets dans une procédure.

    Du coup, quand t'en as besoin pour x raisons, c'est plus simple à retrouver et à maintenir.
    En ce qui concerne ma procédure, je n'utilise pas de modules. C'est la seule différence avec la tienne .

  10. #10
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Je vais laisser ainsi, même si je n'utilise pas correctement la fonction et que je dois mettre des 1 pour l'année, le mois et le jour, c'est très rapide. Merci.
    -- Jasmine --

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

Discussions similaires

  1. Le temps d'exécution de vos scripts perl!!
    Par djibril dans le forum Langage
    Réponses: 5
    Dernier message: 17/06/2009, 10h42
  2. Réponses: 3
    Dernier message: 24/06/2007, 01h24
  3. Calculer le temps d'exécution d'un script
    Par pomgnon dans le forum C
    Réponses: 2
    Dernier message: 28/12/2006, 15h49
  4. [MySQL] Temps d'exécution d'un script
    Par Gwipi dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 01/05/2006, 14h39
  5. [CSV] Temps d'exécution d'un script
    Par Sangdrax1604 dans le forum Langage
    Réponses: 2
    Dernier message: 10/04/2006, 18h49

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