Rastrear o tempo que um comando leva no UNIX / LINUX?


Respostas:


165

Sim, use time <command>, como

time ls

Consulte man timepara mais opções. Link .


4
E o significado dos tempos reais / usuário / sys é bem abordado aqui
orgulho em

Esta resposta é imprecisa para usuários do bash no Linux. A página de manual documenta o comando Gnu time, mas time é um embutido no bash, que não tem todas as opções documentadas lá.
Ben Crowell

7

Usar

/usr/bin/time 

em vez disso, o tempo embutido no bash: é AFAIK mais configurável.

e.g. /usr/bin/time --format=' \n---- \nelapsed time is %e'ls

Pelo que eu posso dizer, esse é o padrão. Este foi o caso nos sistemas CentOS 6, CentOS 7 e Debian 8 que verifiquei: user@host:~$ which time /usr/bin/time Parece ser a versão 1.7 do tempo do GNU.
Toby,

4
@Toby: Mesmo que "which" diga que é / usr / bin / time, no bash, o builtin substitui isso. Se eu fizer time -f "\t%E real" lsno bash, recebo um erro, mas funciona se o fizer /usr/bin/time -f "\t%E real" ls.
Ben Crowell

1
Você está certo. Isso é muito interessante e esclarecedor. Obrigado!
Toby de

1
Não use which. Uso type -a:$ which time /usr/bin/time $ type -a time time is a shell keyword time is /usr/bin/time
Daniel-Dane

Observe que o uso /usr/bin/timeevita que você use aliases de bash. O bash embutido timeé necessário para isso, senão você obterá o erro cannot run my_alias: No such file or directory.
Jamie S de

6

Esta é a aparência de um sleepde um segundo, cronometrado com time:

$ time sleep 1

real    0m1.001s
user    0m0.000s
sys 0m0.000s
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.