web-dev-qa-db-fra.com

Comment puis-je mesurer le temps d'exécution d'un processus terminal?

J'essaie de mesurer le temps d'exécution d'un processus que j'appelle via la ligne de commande (c'est-à-dire que je veux savoir combien de temps il faut pour que le processus se termine). Existe-t-il une commande que je puisse ajouter à la commande appelant le processus qui y parviendra?

153
user848635

Ajoutez timeavant la commande à mesurer. Par exemple: time ls.

La sortie ressemblera à:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

Explication sur realname___, useret sys(à partir de man time):

  • realname__: Temps réel écoulé (horloge murale) utilisé par le processus, en secondes.
  • username__: Nombre total de secondes-CPU que le processus a utilisé directement (en mode utilisateur), en secondes.
  • sysname__: Nombre total de secondes CPU utilisées par le système pour le compte du processus (en mode noyau), en secondes.
186
ninjalj

Pour une mesure delta ligne par ligne, essayez gnomon .

C'est un utilitaire de ligne de commande, un peu comme ts de moreutils, pour ajouter des informations d'horodatage à la sortie standard d'une autre commande. Utile pour les processus de longue durée pour lesquels vous souhaitez un historique de ce qui prend si longtemps.

Piping quoi que ce soit à gnomon ajoutera un horodatage à chaque ligne, indiquant combien de temps cette ligne a été la dernière ligne du tampon - c'est-à-dire combien de temps il a fallu que la ligne suivante apparaisse. Par défaut, gnomon affichera les secondes écoulées entre chaque ligne, mais cela est configurable.

gnomon demo

40
Janus Troelsen

Vous pouvez utiliser time:

time ls -R
24
William Niu
date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

L'exécution de cette commande dans le terminal vous donnera le temps total nécessaire à la copie d'un fichier.

7
user314473

Parfois, il me faut un chronomètre pour compter le temps nécessaire à une action telle que le démarrage de mon application, auquel cas de nombreuses solutions ne sont pas utiles.

Pour cela, j'aime utiliser sw .

sw

Installer

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

Usage

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume
4
Cory Klein