Christophe CasalegnoAutoimmune warrior, Entrepreneur & Bio/Hacker

brain@127.0.0.1:~$ cat post.html

Gnu / Linux : mesurer simplement le temps d’exécution dans un script BASH

Linux Shell Bash Timer

Hello, ce post complémentaire fait suite à ma dernière courte vidéo nocturne publiée sur YouTube et que vous pouvez consulter ci-dessous.

Voir la vidéo sur YouTube


Quelques petites précisions :

1) En dehors d’un script bash, dans votre session, la variable $SECOND affichera le nombre de secondes écoulées depuis que la session de terminal correspondant est ouverte.

2) Si vous souhaitez effectuer des mesures, non pas depuis le démarrage du script, mais de différentes portions de ce dernier, il faut savoir que vous pouvez à la fois :
– réinitialiser la variable quand vous le souhaitez
– stocker la valeur de cette variable à un moment donné dans une autre variable.

Vous pouvez donc enregistrer chaque valeur qui vous intéresse dans une variable puis effectuer des opérations arithmétiques de votre choix pour obtenir le résultat attendu. Par exemple :

echo Partie 1 :
sleep 3
PARTIE1=$SECONDS
echo "Temps écoulé durant la partie 1 : $PARTIE1 secondes"
SECONDS="0"
echo Partie 2 :
sleep 2
PARTIE2=$SECONDS
echo "Temps écoulé durant la partie 2 : $PARTIE2 secondes"
echo "temps total écoulé : $(($PARTIE1+$PARTIE2)) secondes"

Donnera comme résultat :

Partie 1 :
Temps écoulé durant la partie 1 : 3 secondes
Partie 2 :
Temps écoulé durant la partie 2 : 2 secondes
temps total écoulé : 5 secondes

Enjoy!

—
Christophe Casalegno
​Vous pouvez me suivre sur : Twitter | Facebook | Linkedin | Telegram | Youtube

3 commentaires

  1. Et pour monitorer l’avancement d’une tâche dont on connais la durée*, avec une barre de progression et un temps total estimé : `pv FUNCTION`
    Ex :

    $ pv filename.bz2 | bunzip2 > filename.sql
    ou
    $ pv dump.sql | mysql -u root -p DB_NAME

    * fonctionne aussi pour les durées indeterminées

  2. Un petit ajout pratique et dans le thème :

    Pour chronométrer le temps que met un script ou une action a effectuer :
    $ time FUNCTION
    ou
    $ time SCRIPT.sh

    Exemple ici :
    time ./test.sh
    Partie 1 :
    Temps écoulé durant la partie 1 : 3 secondes
    Partie 2 :
    Temps écoulé durant la partie 2 : 2 secondes
    temps total écoulé : 5 secondes

    real 0m5.006s
    user 0m0.002s
    sys 0m0.004s

    Je vous laisse aller lire le man de ‘time’ pour les explications des 3 valeurs disctincts. (C’est le « real » qui nous intéresse ici)

    1. Hello et merci pour ton message. Justement de mémoire dans cette vieille vidéo (ça commence à dater !), je parle de time et ici c’était justement pour avoir une information in bash sans appel externe à time. Excellente continuation.

Laisser un commentaire

Ajouter un commentaire
Christophe Casalegno Brain 0verride

Soyez simple
et direct !